Files
MeshCore/src/helpers/ui/GenericVibration.cpp
2025-09-18 13:19:54 +10:00

39 lines
726 B
C++

#ifdef PIN_VIBRATION
#include "GenericVibration.h"
void GenericVibration::begin() {
pinMode(PIN_VIBRATION, OUTPUT);
digitalWrite(PIN_VIBRATION, LOW);
duration = 0;
}
void GenericVibration::trigger() {
duration = millis();
digitalWrite(PIN_VIBRATION, HIGH);
}
void GenericVibration::loop() {
if (isVibrating()) {
if ((millis() / 1000) % 2 == 0) {
digitalWrite(PIN_VIBRATION, LOW);
} else {
digitalWrite(PIN_VIBRATION, HIGH);
}
if (millis() - duration > VIBRATION_TIMEOUT) {
stop();
}
}
}
bool GenericVibration::isVibrating() {
return duration > 0;
}
void GenericVibration::stop() {
duration = 0;
digitalWrite(PIN_VIBRATION, LOW);
}
#endif // ifdef PIN_VIBRATION