mqtt test and autotest settings added

This commit is contained in:
Bogdan Pilyugin 2023-03-31 15:15:57 +02:00
parent 0afe237f1d
commit 2c3076a6f9
5 changed files with 89 additions and 15 deletions

View File

@ -741,6 +741,15 @@ menu "WebGUIApp"
string "MQTT user password" string "MQTT user password"
default "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
endif endif
endmenu endmenu

View File

@ -89,6 +89,7 @@
char ClientID[32]; char ClientID[32];
char UserName[32]; char UserName[32];
char UserPass[32]; char UserPass[32];
uint16_t AutotestInterval;
struct struct
{ {
char b0 :1; char b0 :1;
@ -97,7 +98,7 @@
char b3 :1; char b3 :1;
char b4 :1; char b4 :1;
char b5 :1; char b5 :1;
char b6 :1; char bIsAutotestEnabled :1;
char bIsGlobalEnabled :1; char bIsGlobalEnabled :1;
} Flags1; } Flags1;
} mqttStation[CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM]; } mqttStation[CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM];

View File

@ -150,7 +150,7 @@ static HTTP_IO_RESULT HTTPPostAdaptersSettings(httpd_req_t *req, char *PostData)
if (httpd_query_key_value(PostData, "wifipwr", tmp, sizeof(tmp)) == ESP_OK) if (httpd_query_key_value(PostData, "wifipwr", tmp, sizeof(tmp)) == ESP_OK)
{ {
uint8_t pwr = atoi((const char*) tmp); uint8_t pwr = atoi((const char*) tmp);
if (pwr >=8 && pwr <= 84) if (pwr >= 8 && pwr <= 84)
GetSysConf()->wifiSettings.MaxPower = pwr * 4; GetSysConf()->wifiSettings.MaxPower = pwr * 4;
} }
@ -320,8 +320,11 @@ static HTTP_IO_RESULT HTTPPostServicesSettings(httpd_req_t *req, char *PostData)
char tmp[64]; char tmp[64];
#if CONFIG_WEBGUIAPP_MQTT_ENABLE #if CONFIG_WEBGUIAPP_MQTT_ENABLE
bool TempIsMQTT1Enabled = false; bool TempIsMQTT1Enabled = false;
bool TempIsMQTT1AutotestEnabled = false;
#if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2 #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2
bool TempIsMQTT2Enabled = false; bool TempIsMQTT2Enabled = false;
bool TempIsMQTT2AutotestEnabled = false;
#endif #endif
httpd_query_key_value(PostData, "mqurl1", GetSysConf()->mqttStation[0].ServerAddr, httpd_query_key_value(PostData, "mqurl1", GetSysConf()->mqttStation[0].ServerAddr,
sizeof(GetSysConf()->mqttStation[0].ServerAddr)); sizeof(GetSysConf()->mqttStation[0].ServerAddr));
@ -339,7 +342,6 @@ static HTTP_IO_RESULT HTTPPostServicesSettings(httpd_req_t *req, char *PostData)
if (!strcmp((const char*) tmp, (const char*) "1")) if (!strcmp((const char*) tmp, (const char*) "1"))
TempIsMQTT1Enabled = true; TempIsMQTT1Enabled = true;
} }
if (httpd_query_key_value(PostData, "mqport1", tmp, sizeof(tmp)) == ESP_OK)
if (httpd_query_key_value(PostData, "mqport1", tmp, sizeof(tmp)) == ESP_OK) if (httpd_query_key_value(PostData, "mqport1", tmp, sizeof(tmp)) == ESP_OK)
{ {
uint16_t tp = atoi((const char*) tmp); uint16_t tp = atoi((const char*) tmp);
@ -353,6 +355,18 @@ static HTTP_IO_RESULT HTTPPostServicesSettings(httpd_req_t *req, char *PostData)
strcpy(GetSysConf()->mqttStation[0].UserPass, tmp); 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 #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2
httpd_query_key_value(PostData, "mqurl2", GetSysConf()->mqttStation[1].ServerAddr, httpd_query_key_value(PostData, "mqurl2", GetSysConf()->mqttStation[1].ServerAddr,
sizeof(GetSysConf()->mqttStation[1].ServerAddr)); sizeof(GetSysConf()->mqttStation[1].ServerAddr));
@ -371,7 +385,6 @@ static HTTP_IO_RESULT HTTPPostServicesSettings(httpd_req_t *req, char *PostData)
TempIsMQTT2Enabled = true; TempIsMQTT2Enabled = true;
} }
if (httpd_query_key_value(PostData, "mqport2", tmp, sizeof(tmp)) == ESP_OK)
if (httpd_query_key_value(PostData, "mqport2", tmp, sizeof(tmp)) == ESP_OK) if (httpd_query_key_value(PostData, "mqport2", tmp, sizeof(tmp)) == ESP_OK)
{ {
uint16_t tp = atoi((const char*) tmp); uint16_t tp = atoi((const char*) tmp);
@ -384,6 +397,17 @@ static HTTP_IO_RESULT HTTPPostServicesSettings(httpd_req_t *req, char *PostData)
{ {
strcpy(GetSysConf()->mqttStation[1].UserPass, tmp); 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 #endif
@ -403,12 +427,14 @@ static HTTP_IO_RESULT HTTPPostServicesSettings(httpd_req_t *req, char *PostData)
if (!strcmp(tmp, (const char*) "mqtt1")) if (!strcmp(tmp, (const char*) "mqtt1"))
{ {
GetSysConf()->mqttStation[0].Flags1.bIsGlobalEnabled = TempIsMQTT1Enabled; GetSysConf()->mqttStation[0].Flags1.bIsGlobalEnabled = TempIsMQTT1Enabled;
GetSysConf()->mqttStation[0].Flags1.bIsAutotestEnabled = TempIsMQTT1AutotestEnabled;
} }
else if (!strcmp(tmp, (const char*) "mqtt2")) else if (!strcmp(tmp, (const char*) "mqtt2"))
{ {
#if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2 #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2
GetSysConf()->mqttStation[1].Flags1.bIsGlobalEnabled = TempIsMQTT2Enabled; GetSysConf()->mqttStation[1].Flags1.bIsGlobalEnabled = TempIsMQTT2Enabled;
GetSysConf()->mqttStation[1].Flags1.bIsAutotestEnabled = TempIsMQTT2AutotestEnabled;
#endif #endif
} }

View File

@ -570,6 +570,17 @@ void HTTPPrint_mqpass1(char *VarData, void *arg)
{ {
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", "******"); 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 #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2
void HTTPPrint_mqen2(char *VarData, void *arg) void HTTPPrint_mqen2(char *VarData, void *arg)
@ -604,6 +615,15 @@ void HTTPPrint_mqpass2(char *VarData, void *arg)
{ {
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", "******"); 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
#endif #endif
@ -804,6 +824,10 @@ dyn_var_handler_t HANDLERS_ARRAY[] = {
{ "mqid1", sizeof("mqid1") - 1, &HTTPPrint_mqid1 }, { "mqid1", sizeof("mqid1") - 1, &HTTPPrint_mqid1 },
{ "mqname1", sizeof("mqname1") - 1, &HTTPPrint_mqname1 }, { "mqname1", sizeof("mqname1") - 1, &HTTPPrint_mqname1 },
{ "mqpass1", sizeof("mqpass1") - 1, &HTTPPrint_mqpass1 }, { "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 #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2
{ "mqen2", sizeof("mqen2") - 1, &HTTPPrint_mqen2 }, { "mqen2", sizeof("mqen2") - 1, &HTTPPrint_mqen2 },
{ "mqurl2", sizeof("mqurl2") - 1, &HTTPPrint_mqurl2 }, { "mqurl2", sizeof("mqurl2") - 1, &HTTPPrint_mqurl2 },
@ -813,6 +837,10 @@ dyn_var_handler_t HANDLERS_ARRAY[] = {
{ "mqgrp2", sizeof("mqgrp2") - 1, &HTTPPrint_mqgrp2 }, { "mqgrp2", sizeof("mqgrp2") - 1, &HTTPPrint_mqgrp2 },
{ "mqname2", sizeof("mqname2") - 1, &HTTPPrint_mqname2 }, { "mqname2", sizeof("mqname2") - 1, &HTTPPrint_mqname2 },
{ "mqpass2", sizeof("mqpass2") - 1, &HTTPPrint_mqpass2 }, { "mqpass2", sizeof("mqpass2") - 1, &HTTPPrint_mqpass2 },
{ "mqtesten2", sizeof("mqtesten2") - 1, &HTTPPrint_mqtesten2 },
{ "mqtestpr2", sizeof("mqtestpr2") - 1, &HTTPPrint_mqtestpr2 },
#endif #endif
#endif #endif
/*SNTP*/ /*SNTP*/

View File

@ -339,6 +339,11 @@ esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_DNS3_ADDRESS_DEFAULT, (esp_ip4_addr_t*) &C
sizeof(CONFIG_WEBGUIAPP_MQTT_USERNAME)); sizeof(CONFIG_WEBGUIAPP_MQTT_USERNAME));
memcpy(Conf->mqttStation[0].UserPass, CONFIG_WEBGUIAPP_MQTT_PASSWORD, memcpy(Conf->mqttStation[0].UserPass, CONFIG_WEBGUIAPP_MQTT_PASSWORD,
sizeof(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 #if CONFIG_WEBGUIAPP_MQTT_CLIENTS_NUM == 2
Conf->mqttStation[1].Flags1.bIsGlobalEnabled = false; Conf->mqttStation[1].Flags1.bIsGlobalEnabled = false;
#if CONFIG_WEBGUIAPP_MQTT_ON #if CONFIG_WEBGUIAPP_MQTT_ON
@ -352,6 +357,11 @@ 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].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].UserName, CONFIG_WEBGUIAPP_MQTT_USERNAME, sizeof(CONFIG_WEBGUIAPP_MQTT_USERNAME));
memcpy(Conf->mqttStation[1].UserPass, CONFIG_WEBGUIAPP_MQTT_PASSWORD, sizeof(CONFIG_WEBGUIAPP_MQTT_PASSWORD)); 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
#endif #endif
memcpy(Conf->sntpClient.SntpServerAdr, CONFIG_WEBGUIAPP_SNTP_HOST, memcpy(Conf->sntpClient.SntpServerAdr, CONFIG_WEBGUIAPP_SNTP_HOST,