start integration of mqtt
This commit is contained in:
@ -10,6 +10,7 @@
|
||||
#include <PubSubClient.h>
|
||||
#include <PString.h>
|
||||
#include <Streaming.h>
|
||||
#include <Metro.h>
|
||||
|
||||
|
||||
byte MQTT_BROKER[] = { 192, 168, 75, 1 };
|
||||
@ -26,10 +27,22 @@ void callback(char* topic, byte* payload, unsigned int length) {
|
||||
}
|
||||
|
||||
|
||||
Metro secondTick = Metro(1000);
|
||||
|
||||
|
||||
MqttClient::MqttClient(RequestSender *meterBusMaster) :
|
||||
m_client(), m_meterBusMaster(meterBusMaster), m_mqttClient(MQTT_BROKER, MQTT_PORT, callback, m_client),
|
||||
m_disconnectState(3), m_disconnectTime(millis())
|
||||
{
|
||||
for (uint8_t i = 0; i < NUM_OF_DEVICES; i++) {
|
||||
m_mbusDevTuple[i].address = 0;
|
||||
m_mbusDevTuple[i].queryPeriod = 0;
|
||||
m_mbusDevTuple[i].timer = 0;
|
||||
}
|
||||
|
||||
m_mbusDevTuple[0].address = 0x53;
|
||||
m_mbusDevTuple[0].queryPeriod = 60;
|
||||
m_mbusDevTuple[0].timer = m_mbusDevTuple[0].queryPeriod;
|
||||
}
|
||||
|
||||
void MqttClient::sendResponse(uint8_t *responseBuffer, uint16_t responseBufferLength) {
|
||||
@ -92,6 +105,18 @@ void MqttClient::exec() {
|
||||
}
|
||||
|
||||
|
||||
if (secondTick.check() == 1) {
|
||||
for (uint8_t i = 0; i < NUM_OF_DEVICES; i++) {
|
||||
m_mbusDevTuple[i].timer -= 1;
|
||||
if (m_mbusDevTuple[i].timer == 0) {
|
||||
m_mbusDevTuple[i].timer = m_mbusDevTuple[i].queryPeriod;
|
||||
Serial << "Issue request for device " << m_mbusDevTuple[i].address << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// m_client = m_server.available();
|
||||
// if (m_client) {
|
||||
// uint16_t sendBufLen = 0;
|
||||
|
Reference in New Issue
Block a user