const uint8_t MAXSOR=6;
const uint8_t HIANYKUSZOB = 170; //Ha az átlag ennyi % nagyobb, akkor maghiány van.
const uint8_t TULGYORS = 50 ; //Ha az átlagnál ennyi%-al gyorsabben jön, túl gyorsan jött.
class VgSor
{ uint32_t sorTakt; //Atlagtakt [ms]
uint32_t umagIdo=0; //utolso jottmag idopontja [milllis]
uint16_t hiany=0; //hiányzó magok sz.
uint32_t magMind=0; //Kivetett osszes mag
bool vet_e; //vet-e [I/N]
bool sorRiado; //Ha vetogep vet, de a sor nem, riadot fúj [I/N]
public:
uint8_t lab; //A processzor laba az adott sorhoz
VgSor(uint8_t pin )
{ lab=pin;
}
void magjott(uint32_t millis)
{ uint32_t deltaT=millis-umagIdo;
umagIdo=millis;
vet_e=true; sorRiado=false;
if (deltaT<(sorTakt/4)) {/*Tul gyorsan jott a mag, hibás adat, figyelmen kivul marad*/ }
else
{ magMind++;
if(deltaT<(sorTakt*170/100))
{ sorTakt=(sorTakt+deltaT)/2; //Normal erkezesi ido
}
}
}
}; /////////////// Class VEGE /////////////
VgSor sorok[MAXSOR]={VgSor(14), VgSor(15),VgSor(18),VgSor(19), VgSor(20), VgSor(21)};
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
}
void loop() {
// put your main code here, to run repeatedly:
delay(100); // this speeds up the simulation
Serial.printf("Sima %d\n",sorok[1].lab);
}