main/task_mqtt.c

changeset 9
a85995941d0d
parent 8
c6bbd1380f22
child 11
e33f2d325d15
equal deleted inserted replaced
8:c6bbd1380f22 9:a85995941d0d
220 payload = NULL; 220 payload = NULL;
221 } 221 }
222 222
223 223
224 224
225 void publishLogs(void)
226 {
227 char *topic = NULL, *payload = NULL, buf[64];
228
229 for (int i = 0; i < 3; i++) {
230 if (units[i].mode && ! units[i].alarm) {
231 if (xSemaphoreTake(xSemaphoreUnits, 25) == pdTRUE) {
232 payload = payload_header();
233 payload = xstrcat(payload, (char *)"{\"uuid\":\"");
234 payload = xstrcat(payload, units[i].uuid);
235 payload = xstrcat(payload, (char *)"\",\"temperature\":");
236 sprintf(buf, "%.3f", units[i].temperature / 1000.0);
237 payload = xstrcat(payload, buf);
238 payload = xstrcat(payload, (char *)",\"pressure\":");
239 sprintf(buf, "%.3f", units[i].pressure / 1000.0);
240 payload = xstrcat(payload, buf);
241 payload = xstrcat(payload, (char *)"}}");
242 topic = topic_base((char *)"DLOG");
243 topic = xstrcat(topic, (char *)"/");
244 topic = xstrcat(topic, units[i].alias);
245 publisher(topic, payload);
246 free(topic);
247 topic = NULL;
248 free(payload);
249 payload = NULL;
250 xSemaphoreGive(xSemaphoreUnits);
251 }
252 }
253 }
254 }
255
256
257
225 static esp_err_t mqtt_event_handler_cb(esp_mqtt_event_handle_t event) 258 static esp_err_t mqtt_event_handler_cb(esp_mqtt_event_handle_t event)
226 { 259 {
227 switch (event->event_id) { 260 switch (event->event_id) {
228 261
229 case MQTT_EVENT_CONNECTED: 262 case MQTT_EVENT_CONNECTED:

mercurial