#include <Arduino.h>
#include "Events.h"
#include <math.h>
void customLog(const String& message) {
Serial.println(message);
}
EventManager pump = EventManager("Dosing Pump",customLog);
void onStop(){
Serial.println("pump stoped");
}
void onRunning(){
Serial.println("pump Running");
}
void onStart(int speed){
Serial.print("pump started,Running at :");
Serial.print(speed);
Serial.println(" rpm");
}
void onCooling(){
Serial.println("pump Running");
}
void onTripped(float current,int rpm,int voltage=0){
Serial.print("Pump tripped over current :");
Serial.print(current);
Serial.print(" Amps");
Serial.print(" instantenous rpm is ");
Serial.print(rpm);
Serial.print(" rpm");
Serial.print(" voltage ");
Serial.print(voltage);
Serial.println(" V");
}
void setup() {
Serial.begin(115200);
// Register event handlers for different pump states using templates
pump.on("start",onStart);
pump.on("stop",onStop);
pump.on("tripped",onTripped);
pump.on("running",onRunning);
pump.on("cooling",onCooling);
String auditResult=pump.audit();
Serial.println(auditResult);
delay(5000);
pump.remove("cooling");
auditResult=pump.audit();
delay(5000);
Serial.println(auditResult);
delay(5000);
pump.remove("tripped");
auditResult=pump.audit();
delay(5000);
Serial.println(auditResult);
delay(5000);
pump.remove("running");
auditResult=pump.audit();
delay(5000);
Serial.println(auditResult);
}
void loop() {
// Main loop can remain empty for now
}