mirror of
https://github.com/Skysamara/hydro.git
synced 2025-12-05 22:06:02 +00:00
67 lines
1.8 KiB
C++
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;
|
|
};
|