diff --git a/Kconfig b/Kconfig index b5193dd..a2c104d 100644 --- a/Kconfig +++ b/Kconfig @@ -739,16 +739,7 @@ menu "WebGUIApp" config WEBGUIAPP_MQTT_PASSWORD string "MQTT user password" - default "password" - - config WEBGUIAPP_MQTT_AUTOTEST_ON - bool "Enable MQTT autotest" - default n - - config WEBGUIAPP_MQTT_AUTOTEST_PERIOD - int "MQTT autotest period" - range 1 65535 - default 60 + default "password" endif endmenu diff --git a/include/WebGUIAppMain.h b/include/WebGUIAppMain.h index b9dd5d4..1de696e 100644 --- a/include/WebGUIAppMain.h +++ b/include/WebGUIAppMain.h @@ -89,7 +89,6 @@ char ClientID[32]; char UserName[32]; char UserPass[32]; - uint16_t AutotestInterval; struct { char b0 :1; @@ -98,7 +97,7 @@ char b3 :1; char b4 :1; char b5 :1; - char bIsAutotestEnabled :1; + char b6 :1; char bIsGlobalEnabled :1; } Flags1; } mqttStation[CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM]; diff --git a/src/HTTPPostSystem.c b/src/HTTPPostSystem.c index 86562b0..4239edb 100644 --- a/src/HTTPPostSystem.c +++ b/src/HTTPPostSystem.c @@ -321,11 +321,9 @@ static HTTP_IO_RESULT HTTPPostServicesSettings(httpd_req_t *req, char *PostData) char tmp[64]; #if CONFIG_WEBGUIAPP_MQTT_ENABLE bool TempIsMQTT1Enabled = false; - bool TempIsMQTT1AutotestEnabled = false; #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2 bool TempIsMQTT2Enabled = false; - bool TempIsMQTT2AutotestEnabled = false; #endif httpd_query_key_value(PostData, "mqurl1", GetSysConf()->mqttStation[0].ServerAddr, sizeof(GetSysConf()->mqttStation[0].ServerAddr)); @@ -356,18 +354,6 @@ static HTTP_IO_RESULT HTTPPostServicesSettings(httpd_req_t *req, char *PostData) strcpy(GetSysConf()->mqttStation[0].UserPass, tmp); } - if (httpd_query_key_value(PostData, "mqtestpr1", tmp, sizeof(tmp)) == ESP_OK) - { - uint16_t prd = atoi((const char*) tmp); - if (prd < 65535) - GetSysConf()->mqttStation[0].AutotestInterval = prd; - } - if (httpd_query_key_value(PostData, "mqtesten1", tmp, sizeof(tmp)) == ESP_OK) - { - if (!strcmp((const char*) tmp, (const char*) "1")) - TempIsMQTT1AutotestEnabled = true; - } - #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2 httpd_query_key_value(PostData, "mqurl2", GetSysConf()->mqttStation[1].ServerAddr, sizeof(GetSysConf()->mqttStation[1].ServerAddr)); @@ -398,17 +384,6 @@ static HTTP_IO_RESULT HTTPPostServicesSettings(httpd_req_t *req, char *PostData) { strcpy(GetSysConf()->mqttStation[1].UserPass, tmp); } - if (httpd_query_key_value(PostData, "mqtestpr2", tmp, sizeof(tmp)) == ESP_OK) - { - uint16_t prd = atoi((const char*) tmp); - if (prd < 65535) - GetSysConf()->mqttStation[1].AutotestInterval = prd; - } - if (httpd_query_key_value(PostData, "mqtesten2", tmp, sizeof(tmp)) == ESP_OK) - { - if (!strcmp((const char*) tmp, (const char*) "1")) - TempIsMQTT2AutotestEnabled = true; - } #endif @@ -452,14 +427,12 @@ static HTTP_IO_RESULT HTTPPostServicesSettings(httpd_req_t *req, char *PostData) if (!strcmp(tmp, (const char*) "mqtt1")) { GetSysConf()->mqttStation[0].Flags1.bIsGlobalEnabled = TempIsMQTT1Enabled; - GetSysConf()->mqttStation[0].Flags1.bIsAutotestEnabled = TempIsMQTT1AutotestEnabled; } else if (!strcmp(tmp, (const char*) "mqtt2")) { #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2 GetSysConf()->mqttStation[1].Flags1.bIsGlobalEnabled = TempIsMQTT2Enabled; - GetSysConf()->mqttStation[1].Flags1.bIsAutotestEnabled = TempIsMQTT2AutotestEnabled; #endif } diff --git a/src/HTTPPrintSystem.c b/src/HTTPPrintSystem.c index dceea84..fac817e 100644 --- a/src/HTTPPrintSystem.c +++ b/src/HTTPPrintSystem.c @@ -570,17 +570,6 @@ void HTTPPrint_mqpass1(char *VarData, void *arg) { snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", "******"); } -void HTTPPrint_mqtesten1(char *VarData, void *arg) -{ - PrintCheckbox(VarData, arg, GetSysConf()->mqttStation[0].Flags1.bIsAutotestEnabled); -} -void HTTPPrint_mqtestpr1(char *VarData, void *arg) -{ - snprintf(VarData, MAX_DYNVAR_LENGTH, "%d", GetSysConf()->mqttStation[0].AutotestInterval); -} - - - #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2 void HTTPPrint_mqen2(char *VarData, void *arg) @@ -615,15 +604,6 @@ void HTTPPrint_mqpass2(char *VarData, void *arg) { snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", "******"); } -void HTTPPrint_mqtesten2(char *VarData, void *arg) -{ - PrintCheckbox(VarData, arg, GetSysConf()->mqttStation[1].Flags1.bIsAutotestEnabled); -} -void HTTPPrint_mqtestpr2(char *VarData, void *arg) -{ - snprintf(VarData, MAX_DYNVAR_LENGTH, "%d", GetSysConf()->mqttStation[1].AutotestInterval); -} - #endif #endif @@ -825,9 +805,6 @@ dyn_var_handler_t HANDLERS_ARRAY[] = { { "mqname1", sizeof("mqname1") - 1, &HTTPPrint_mqname1 }, { "mqpass1", sizeof("mqpass1") - 1, &HTTPPrint_mqpass1 }, - { "mqtesten1", sizeof("mqtesten1") - 1, &HTTPPrint_mqtesten1 }, - { "mqtestpr1", sizeof("mqtestpr1") - 1, &HTTPPrint_mqtestpr1 }, - #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2 { "mqen2", sizeof("mqen2") - 1, &HTTPPrint_mqen2 }, { "mqurl2", sizeof("mqurl2") - 1, &HTTPPrint_mqurl2 }, @@ -838,9 +815,6 @@ dyn_var_handler_t HANDLERS_ARRAY[] = { { "mqname2", sizeof("mqname2") - 1, &HTTPPrint_mqname2 }, { "mqpass2", sizeof("mqpass2") - 1, &HTTPPrint_mqpass2 }, - { "mqtesten2", sizeof("mqtesten2") - 1, &HTTPPrint_mqtesten2 }, - { "mqtestpr2", sizeof("mqtestpr2") - 1, &HTTPPrint_mqtestpr2 }, - #endif #endif /*SNTP*/ diff --git a/src/MQTTSysHandler.c b/src/MQTTSysHandler.c index 768929b..1bbcb03 100644 --- a/src/MQTTSysHandler.c +++ b/src/MQTTSysHandler.c @@ -403,12 +403,15 @@ api_json_err: mqtt_app_err_t PublicTestMQTT(int idx) { - char JSONMess[MAX_ERROR_JSON]; + char resp[256]; + char JSONMess[512]; jwOpen(JSONMess, MAX_ERROR_JSON, JW_OBJECT, JW_PRETTY); time_t now; time(&now); jwObj_int("time", (unsigned int) now); jwObj_string("event", "MQTT_TEST_MESSAGE)"); + ComposeTopic(resp, idx, "SYSTEM", "DWLINK"); + jwObj_string("resp_topic", resp); jwEnd(); jwClose(); char *buf = (char*) malloc(strlen(JSONMess) + 1); diff --git a/src/WebGUIAppMain.c b/src/WebGUIAppMain.c index 76270b1..c874fe5 100644 --- a/src/WebGUIAppMain.c +++ b/src/WebGUIAppMain.c @@ -339,11 +339,6 @@ esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_DNS3_ADDRESS_DEFAULT, (esp_ip4_addr_t*) &C sizeof(CONFIG_WEBGUIAPP_MQTT_USERNAME)); memcpy(Conf->mqttStation[0].UserPass, CONFIG_WEBGUIAPP_MQTT_PASSWORD, sizeof(CONFIG_WEBGUIAPP_MQTT_PASSWORD)); - Conf->mqttStation[0].Flags1.bIsAutotestEnabled = false; -#if CONFIG_WEBGUIAPP_MQTT_AUTOTEST_ON - Conf->mqttStation[0].Flags1.bIsAutotestEnabled = true; -#endif - Conf->mqttStation[0].AutotestInterval = CONFIG_WEBGUIAPP_MQTT_AUTOTEST_PERIOD; #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2 Conf->mqttStation[1].Flags1.bIsGlobalEnabled = false; #if CONFIG_WEBGUIAPP_MQTT_ON @@ -357,11 +352,6 @@ esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_DNS3_ADDRESS_DEFAULT, (esp_ip4_addr_t*) &C memcpy(Conf->mqttStation[1].ClientID, CONFIG_WEBGUIAPP_MQTT_CLIENT_ID_2, sizeof(CONFIG_WEBGUIAPP_MQTT_CLIENT_ID_2)); memcpy(Conf->mqttStation[1].UserName, CONFIG_WEBGUIAPP_MQTT_USERNAME, sizeof(CONFIG_WEBGUIAPP_MQTT_USERNAME)); memcpy(Conf->mqttStation[1].UserPass, CONFIG_WEBGUIAPP_MQTT_PASSWORD, sizeof(CONFIG_WEBGUIAPP_MQTT_PASSWORD)); - Conf->mqttStation[1].Flags1.bIsAutotestEnabled = false; -#if CONFIG_WEBGUIAPP_MQTT_AUTOTEST_ON - Conf->mqttStation[1].Flags1.bIsAutotestEnabled = true; -#endif - Conf->mqttStation[1].AutotestInterval = CONFIG_WEBGUIAPP_MQTT_AUTOTEST_PERIOD; #endif #endif memcpy(Conf->sntpClient.SntpServerAdr, CONFIG_WEBGUIAPP_SNTP_HOST, diff --git a/src/WiFiTransport.c b/src/WiFiTransport.c index 76e65c4..0a57fd4 100644 --- a/src/WiFiTransport.c +++ b/src/WiFiTransport.c @@ -56,8 +56,6 @@ static bool isWiFiGotIp = false; static wifi_ap_record_t ap_info[DEFAULT_SCAN_LIST_SIZE]; static bool isScanReady = false; -static TaskHandle_t reconnect_task = NULL; - wifi_ap_record_t* GetWiFiAPRecord(uint8_t n) { if (n < DEFAULT_SCAN_LIST_SIZE) @@ -128,22 +126,33 @@ static void event_handler(void *arg, esp_event_base_t event_base, { ip_event_got_ip_t *event = (ip_event_got_ip_t*) event_data; const esp_netif_ip_info_t *ip_info = &event->ip_info; - ESP_LOGI(TAG, "got ip:" IPSTR, IP2STR(&event->ip_info.ip)); - memcpy(&GetSysConf()->wifiSettings.InfIPAddr, &event->ip_info.ip, sizeof(event->ip_info.ip)); memcpy(&GetSysConf()->wifiSettings.InfMask, &event->ip_info.netmask, sizeof(event->ip_info.netmask)); memcpy(&GetSysConf()->wifiSettings.InfGateway, &event->ip_info.gw, sizeof(event->ip_info.gw)); - ESP_LOGI(TAG, "WIFI Got IP Address"); ESP_LOGI(TAG, "~~~~~~~~~~~"); ESP_LOGI(TAG, "WIFIIP:" IPSTR, IP2STR(&ip_info->ip)); ESP_LOGI(TAG, "WIFIMASK:" IPSTR, IP2STR(&ip_info->netmask)); ESP_LOGI(TAG, "WIFIGW:" IPSTR, IP2STR(&ip_info->gw)); ESP_LOGI(TAG, "~~~~~~~~~~~"); - isWiFiGotIp = true; - } + else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_LOST_IP) + { + ip_event_got_ip_t *event = (ip_event_got_ip_t*) event_data; + const esp_netif_ip_info_t *ip_info = &event->ip_info; + memcpy(&GetSysConf()->wifiSettings.InfIPAddr, &event->ip_info.ip, sizeof(event->ip_info.ip)); + memcpy(&GetSysConf()->wifiSettings.InfMask, &event->ip_info.netmask, sizeof(event->ip_info.netmask)); + memcpy(&GetSysConf()->wifiSettings.InfGateway, &event->ip_info.gw, sizeof(event->ip_info.gw)); + ESP_LOGI(TAG, "WIFI Lost IP Address"); + ESP_LOGI(TAG, "~~~~~~~~~~~"); + ESP_LOGI(TAG, "WIFIIP:" IPSTR, IP2STR(&ip_info->ip)); + ESP_LOGI(TAG, "WIFIMASK:" IPSTR, IP2STR(&ip_info->netmask)); + ESP_LOGI(TAG, "WIFIGW:" IPSTR, IP2STR(&ip_info->gw)); + ESP_LOGI(TAG, "~~~~~~~~~~~"); + isWiFiGotIp = false; + } + if (event_id == WIFI_EVENT_AP_STACONNECTED) {