Auteur Sujet: Bug DCC++ dans fonction Sensor::check()  (Lu 522 fois)

nopxor

  • Jr. Member
  • **
  • Messages: 56
    • Voir le profil
Bug DCC++ dans fonction Sensor::check()
« le: février 01, 2018, 05:11:32 pm »
« Modifié: février 01, 2018, 05:35:54 pm par nopxor »

Thierry

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 452
    • Voir le profil
Re: Bug DCC++ dans fonction Sensor::check()
« Réponse #1 le: février 02, 2018, 11:30:36 pm »
void Sensor::check(){
  Sensor *tt;

  for(tt = firstSensor; tt != NULL; tt = tt->nextSensor){
    tt->signal = (float)(tt->signal * (1.0 - SENSOR_DECAY) + digitalRead(tt->data.pin) * SENSOR_DECAY);
   
    if(!tt->active && tt->signal<0.5){
      tt->active=true;
      INTERFACE.print("<Q");
      INTERFACE.print(tt->data.snum);
      INTERFACE.print(">");
#if !defined(USE_ETHERNET)
      INTERFACE.println("");
#endif
    } else if(tt->active && tt->signal>0.9){
      tt->active=false;
      INTERFACE.print("<q");
      INTERFACE.print(tt->data.snum);
      INTERFACE.print(">");
#if !defined(USE_ETHERNET)
      INTERFACE.println("");
#endif
    }
  } // loop over all sensors
   
} // Sensor::check