diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c index acb09e7..353ba99 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/iot_mqtt_srv.c @@ -414,17 +414,14 @@ void iot_mqtt_publish_sensor(void) { const char *freq_level_names[] = {"high", "mid_high", "mid_low", "low"}; written = snprintf(p, remaining, - "%s{\"ch\":%d,\"freq_level\":\"%s\",\"has_car\":%s," - "\"loop_ok\":%s,\"freq_current\":%lu,\"freq_diff\":%d," - "\"sensitivity\":%d,\"condition\":%d," - "\"misc\":{\"type\":\"%s\",\"value\":%lu}}", + "%s{\"ch\":%d,\"fl\":\"%s\",\"car\":%s," + "\"ok\":%s,\"sens\":%d,\"mt\":\"%s\",\"mv\":%lu}", (i > 0) ? "," : "", i + 1, freq_level_names[cs->freq_level], cs->car_state ? "true" : "false", cs->loop_state ? "false" : "true", - cs->freq, cs->variation, - cs->sensitivity, cs->condition, + cs->sensitivity, misc_type_str, misc_val); if (written < 0 || written >= remaining) goto done; p += written; remaining -= written; @@ -440,7 +437,14 @@ void iot_mqtt_publish_sensor(void) { char topic[IOT_MQTT_TOPIC_MAX_LEN]; iot_make_topic(topic, sizeof(topic), "dev", "data", "loop"); - iot_mqtt_publish(topic, payload, strlen(payload), 0); + { + uint16_t plen = (uint16_t)strlen(payload); + if (plen > 450) { + PRINT("IOT: payload too large (%u bytes), skipping\n", plen); + } else { + iot_mqtt_publish(topic, payload, plen, 0); + } + } done: InitPkgUart(&g_pkg_uart_2);