main/co2meter.c

changeset 11
e33f2d325d15
parent 9
a85995941d0d
child 13
7de246feba5f
--- a/main/co2meter.c	Sat Oct 12 21:05:09 2019 +0200
+++ b/main/co2meter.c	Sun Oct 13 12:24:14 2019 +0200
@@ -38,6 +38,7 @@
 extern SemaphoreHandle_t        	xSemaphoreDS18B20;      	///< DS18B20 lock semaphore
 extern ADC_State                	*adc_state;             	///< ADC state
 extern SemaphoreHandle_t        	xSemaphoreADC;          	///< ADC lock semaphore
+extern int				count_pub;
 
 
 void app_main()
@@ -328,16 +329,17 @@
 		    publishNode();
 		    publishUnits();
 		    publishLogs();
-
-Main_Loop1 = MAIN_LOOP1_MQTT_DISCONNECT;
+		    Main_Loop1 = MAIN_LOOP1_WAITACK;
 		    break;
 
 		case MAIN_LOOP1_WAITACK:
+		    if (count_pub == 0) // Wait until all published messages are sent.
+			Main_Loop1 = MAIN_LOOP1_MQTT_DISCONNECT;
 		    break;
 
 		case MAIN_LOOP1_MQTT_DISCONNECT:
 		    ESP_LOGI(TAG, "Loop timer: Disconnect MQTT");
-		    connect_mqtt(false);
+		    connect_mqtt(false); // Doesn't really disconnect.
                     Main_Loop1 = MAIN_LOOP1_DISCONNECT;
 		    break;
 

mercurial