diff --git a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c index daf2134..5404afc 100644 --- a/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c +++ b/vd960DBN/BLE/OnlyUpdateApp_Peripheral/APP/net_srv.c @@ -392,6 +392,7 @@ void mqtt_data_manage(uint8_t id) dg_subscribe_display_topic(); dev_initialize_pub(); reset_net_active_timeup(); + g_iot_state = IOT_STATE_READY; // Sync iot_mqtt_srv state break; case PUBLISH: MQTTDeserialize_publish(&dup, &qos, &retained, &packetid, @@ -409,6 +410,8 @@ void mqtt_data_manage(uint8_t id) break; case PINGRESP: PRINT("MQTT PINGRESP\n"); + if(flag_mqtt_ping_err) + flag_mqtt_ping_err = 0; reset_net_active_timeup(); break; default: @@ -541,6 +544,7 @@ uint8_t i; } if (intstat & SINT_STAT_DISCONNECT) { PRINT("TCP Disconnect (MQTT)\n"); + g_iot_state = IOT_STATE_DISCONNECTED; g_net_state.flag = 1; } if (intstat & SINT_STAT_TIM_OUT) { @@ -635,6 +639,12 @@ void poll_mqtt(void) // return; // } // + /* Auto-trigger PINGREQ every MQTT_KEEPALIVE_INTERVAL seconds of inactivity */ + if (g_activ_counter > (MQTT_KEEPALIVE_INTERVAL * 1000)) { + g_activ_counter = 0; + flag_mqtt_ping_send = 1; + } + if(flag_mqtt_ping_send) { flag_mqtt_ping_send = 0;