ESPMegaPRO-v3-SDK/Template Project/lib/ESPMegaPRO/AnalogIoT.hpp

22 lines
757 B
C++

#pragma once
#include <IoTComponent.hpp>
#include <AnalogCard.hpp>
class AnalogIoT : public IoTComponent {
public:
AnalogIoT();
~AnalogIoT();
bool begin(AnalogCard *card, void (*publishRelative)(uint8_t, char *, char *), PubSubClient *mqtt, char *base_topic);
void handleMqttMessage(char *topic, char *payload);
void publishADCs();
void setADCsPublishInterval(uint32_t interval);
void setADCsPublishEnabled(bool enabled);
void publishReport();
uint8_t getType();
private:
char *adc_topic;
char *dac_topic;
uint32_t adc_publish_interval = 1000;
uint32_t last_adc_publish = 0;
bool adc_publish_enabled = false;
AnalogCard *card;
};