Added analize MQTT publish result (for MQTT failover mode)
This commit is contained in:
@@ -335,6 +335,7 @@ int main()
|
|||||||
int32_t mqtt_rc = 0;
|
int32_t mqtt_rc = 0;
|
||||||
Network mqtt_network;
|
Network mqtt_network;
|
||||||
Client mqtt_client;
|
Client mqtt_client;
|
||||||
|
uint8_t mqtt_err_cnt = 0;
|
||||||
mqtt_network.my_socket = SOCK_MQTT;
|
mqtt_network.my_socket = SOCK_MQTT;
|
||||||
|
|
||||||
// Можно определить IP узла по DNS-имени, IP узла будет в массиве targetIP
|
// Можно определить IP узла по DNS-имени, IP узла будет в массиве targetIP
|
||||||
@@ -400,13 +401,29 @@ int main()
|
|||||||
int len = SPRINTF(_msg, "Uptime: %lu sec; Free RAM: %d bytes\r\n", millis()/1000, freeRam());
|
int len = SPRINTF(_msg, "Uptime: %lu sec; Free RAM: %d bytes\r\n", millis()/1000, freeRam());
|
||||||
if(len > 0)
|
if(len > 0)
|
||||||
{
|
{
|
||||||
PRINTF(">>MQTT pub msg №%lu\r\n", ++mqtt_pub_count);
|
PRINTF(">>MQTT pub msg №%lu ", ++mqtt_pub_count);
|
||||||
MQTTMessage pubMessage;
|
MQTTMessage pubMessage;
|
||||||
pubMessage.qos = QOS0;
|
pubMessage.qos = QOS0;
|
||||||
pubMessage.id = mes_id++;
|
pubMessage.id = mes_id++;
|
||||||
pubMessage.payloadlen = (size_t)len;
|
pubMessage.payloadlen = (size_t)len;
|
||||||
pubMessage.payload = _msg;
|
pubMessage.payload = _msg;
|
||||||
MQTTPublish(&mqtt_client, "/w5500_avr_dbg", &pubMessage);
|
mqtt_rc = MQTTPublish(&mqtt_client, "/w5500_avr_dbg", &pubMessage);
|
||||||
|
//Analize MQTT publish result (for MQTT failover mode)
|
||||||
|
if (mqtt_rc == SUCCESSS)
|
||||||
|
{
|
||||||
|
mqtt_err_cnt = 0;
|
||||||
|
PRINTF(" - OK\r\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PRINTF(" - ERROR\r\n");
|
||||||
|
//Reboot device after 5 continuous errors (~ 1min here)
|
||||||
|
if(mqtt_err_cnt++ > 5)
|
||||||
|
{
|
||||||
|
PRINTF("Connection with MQTT Broker was lost!!\r\nReboot the board..\r\n");
|
||||||
|
while(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user