36 extern SemaphoreHandle_t xSemaphoreUnits; ///< Units lock semaphore |
36 extern SemaphoreHandle_t xSemaphoreUnits; ///< Units lock semaphore |
37 extern DS18B20_State *ds18b20_state; ///< DS18B20 state |
37 extern DS18B20_State *ds18b20_state; ///< DS18B20 state |
38 extern SemaphoreHandle_t xSemaphoreDS18B20; ///< DS18B20 lock semaphore |
38 extern SemaphoreHandle_t xSemaphoreDS18B20; ///< DS18B20 lock semaphore |
39 extern ADC_State *adc_state; ///< ADC state |
39 extern ADC_State *adc_state; ///< ADC state |
40 extern SemaphoreHandle_t xSemaphoreADC; ///< ADC lock semaphore |
40 extern SemaphoreHandle_t xSemaphoreADC; ///< ADC lock semaphore |
|
41 extern int count_pub; |
41 |
42 |
42 |
43 |
43 void app_main() |
44 void app_main() |
44 { |
45 { |
45 struct timeval now; |
46 struct timeval now; |
326 case MAIN_LOOP1_SEND: |
327 case MAIN_LOOP1_SEND: |
327 ESP_LOGI(TAG, "Loop timer: Send MQTT"); |
328 ESP_LOGI(TAG, "Loop timer: Send MQTT"); |
328 publishNode(); |
329 publishNode(); |
329 publishUnits(); |
330 publishUnits(); |
330 publishLogs(); |
331 publishLogs(); |
331 |
332 Main_Loop1 = MAIN_LOOP1_WAITACK; |
332 Main_Loop1 = MAIN_LOOP1_MQTT_DISCONNECT; |
|
333 break; |
333 break; |
334 |
334 |
335 case MAIN_LOOP1_WAITACK: |
335 case MAIN_LOOP1_WAITACK: |
|
336 if (count_pub == 0) // Wait until all published messages are sent. |
|
337 Main_Loop1 = MAIN_LOOP1_MQTT_DISCONNECT; |
336 break; |
338 break; |
337 |
339 |
338 case MAIN_LOOP1_MQTT_DISCONNECT: |
340 case MAIN_LOOP1_MQTT_DISCONNECT: |
339 ESP_LOGI(TAG, "Loop timer: Disconnect MQTT"); |
341 ESP_LOGI(TAG, "Loop timer: Disconnect MQTT"); |
340 connect_mqtt(false); |
342 connect_mqtt(false); // Doesn't really disconnect. |
341 Main_Loop1 = MAIN_LOOP1_DISCONNECT; |
343 Main_Loop1 = MAIN_LOOP1_DISCONNECT; |
342 break; |
344 break; |
343 |
345 |
344 case MAIN_LOOP1_DISCONNECT: |
346 case MAIN_LOOP1_DISCONNECT: |
345 if (! ready_mqtt()) { |
347 if (! ready_mqtt()) { |