hydro/r10_BlinkClasses.ino

67 lines
1.8 KiB
C++

class Pump
{
unsigned long lastTime;
int duration = 10; // Время полива **************************
int maxDuration = 600; // Максимальное время полива 10 минут
int currentDuration; // Текущее время полива для отображения в приложении
public:
Pump(uint8_t address, uint8_t motor, uint32_t freq) {
_m = new Motor(address, motor, freq);
lastTime = millis();
currentDuration = 0;
Serial.println("Pump created");
}
void Update() {
if (((millis() - lastTime) > duration * 1000) // истекло установленное время
|| ((millis() - lastTime) > maxDuration * 1000))// или превышено максимальное
{
lastTime = millis();
Serial.println("class Pump. void Stop()");
_m -> setmotor(_STOP);
}
}
void Start() {
// if (!IsON())
// {
Serial.print("class Pump. void Start() ");
Serial.println(duration);
lastTime = millis();
_m -> setmotor(_CCW, 100);
}
void Stop() {
// if (IsON())
// {
Serial.print("class Pump. void Stop() ");
Serial.println(duration);
lastTime = millis();
_m -> setmotor(_STOP);
// Update();
// }
}
int GetCurrentDuration() {
// if (IsON()) // Если помпа включена
// {
return ((millis() - lastTime) / 1000); // Текущее время полива
// }
// else
// {
// return 0;
// }
}
void SetDuration(int d) {
duration = d;
Serial.print("void SetDuration(int d): ");
Serial.println(duration);
}
private:
Motor *_m;
};