start integration of mqtt

This commit is contained in:
hg
2015-05-09 16:31:49 +02:00
parent 472b9628c4
commit 558711bb2b
5 changed files with 136 additions and 2 deletions

View File

@ -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;