Files
sprocket-plugin-gpio/src/inputs/analog/AnalogInputPlugin.cpp

23 lines
685 B
C++

#include "AnalogInputPlugin.h"
AnalogInputPlugin::AnalogInputPlugin(GpioConfig cfg){
config = cfg;
}
void AnalogInputPlugin::activate(Scheduler *userScheduler)
{
inputTask.set(TASK_MILLISECOND * config.updateInterval, TASK_FOREVER, std::bind(&AnalogInputPlugin::checkInput, this));
userScheduler->addTask(inputTask);
inputTask.enable();
PRINT_MSG(Serial, "PLUGIN", "AnalogInputPlugin activated");
}
void AnalogInputPlugin::checkInput()
{
int newVal = analogRead(config.pin);
if ((newVal >= currentVal + config.threshold || newVal <= currentVal - config.threshold))
{
publish(config.topic, String(newVal));
currentVal = newVal;
}
}