Add MQTT topic generation

Add MQTT topic generation to the protocol definition file.
This commit is contained in:
aaron832
2016-08-16 11:57:59 -03:00
committed by Marcelo Aquino
parent 35cab8c26d
commit 4b0664be5c
2 changed files with 13 additions and 3 deletions
@@ -59,9 +59,9 @@ MyMessage _mqttMsg;
bool gatewayTransportSend(MyMessage &message) {
if (!_client.connected())
return false;
snprintf_P(_fmtBuffer, MY_GATEWAY_MAX_SEND_LENGTH, PSTR(MY_MQTT_PUBLISH_TOPIC_PREFIX "/%d/%d/%d/%d/%d"), message.sender, message.sensor, mGetCommand(message), mGetAck(message), message.type);
debug(PSTR("Sending message on topic: %s\n"), _fmtBuffer);
return _client.publish(_fmtBuffer, message.getString(_convBuffer));
char *mqttMsg = protocolFormatMQTT(message);
debug(PSTR("Sending message on topic: %s\n"), mqttMsg);
return _client.publish(mqttMsg, message.getString(_convBuffer));
}
@@ -100,6 +100,16 @@ char * protocolFormat(MyMessage &message) {
return _fmtBuffer;
}
char * protocolFormatMQTTTopic(const char* prefix, MyMessage &message) {
snprintf_P(_fmtBuffer, MY_GATEWAY_MAX_SEND_LENGTH, PSTR("%s/%d/%d/%d/%d/%d"), prefix, message.sender, message.sensor, mGetCommand(message), mGetAck(message), message.type);
return _fmtBuffer;
}
char * protocolFormatMQTTSubscribe(const char* prefix) {
snprintf_P(_fmtBuffer, MY_GATEWAY_MAX_SEND_LENGTH, PSTR("%s/+/+/+/+/+"), prefix);
return _fmtBuffer;
}
uint8_t protocolH2i(char c) {
uint8_t i = 0;
if (c <= '9')