arduino-doughboy/src/App/SensorControllerPlugin.cpp

34 lines
1.0 KiB
C++

#include "App/SensorControllerPlugin.h"
namespace Dough
{
SensorControllerPlugin::SensorControllerPlugin(MQTT *mqtt, UI *ui) : _mqtt(mqtt), _ui(ui) {}
void SensorControllerPlugin::beforeMeasure(SensorController *controller)
{
_ui->notifySensorActivity();
// Suspend the user interface interrupts, to not disturb the timing-sensitive
// sensor readings.
_ui->suspend();
}
void SensorControllerPlugin::afterMeasure(SensorController *controller)
{
_ui->resume();
}
void SensorControllerPlugin::beforePublish(SensorController *controller)
{
_ui->notifyNetworkActivity();
}
void SensorControllerPlugin::doPublish(SensorController *controller, Measurement last, Measurement average)
{
const char *sensorName = controller->getSensorName();
static char mqttAverageKey[50];
snprintf(mqttAverageKey, 50, "%s/average", sensorName);
_mqtt->publish(sensorName, last);
_mqtt->publish(mqttAverageKey, average);
}
}