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"
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
endmenu

View File

@ -89,6 +89,7 @@
char ClientID[32];
char UserName[32];
char UserPass[32];
uint16_t AutotestInterval;
struct
{
char b0 :1;
@ -97,7 +98,7 @@
char b3 :1;
char b4 :1;
char b5 :1;
char b6 :1;
char bIsAutotestEnabled :1;
char bIsGlobalEnabled :1;
} Flags1;
} 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)
{
uint8_t pwr = atoi((const char*) tmp);
if (pwr >=8 && pwr <= 84)
if (pwr >= 8 && pwr <= 84)
GetSysConf()->wifiSettings.MaxPower = pwr * 4;
}
@ -320,8 +320,11 @@ 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));
@ -339,7 +342,6 @@ static HTTP_IO_RESULT HTTPPostServicesSettings(httpd_req_t *req, char *PostData)
if (!strcmp((const char*) tmp, (const char*) "1"))
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)
{
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);
}
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));
@ -371,7 +385,6 @@ static HTTP_IO_RESULT HTTPPostServicesSettings(httpd_req_t *req, char *PostData)
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)
{
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);
}
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
@ -403,12 +427,14 @@ 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
}

View File

@ -570,6 +570,17 @@ 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)
@ -604,6 +615,15 @@ 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
@ -804,6 +824,10 @@ dyn_var_handler_t HANDLERS_ARRAY[] = {
{ "mqid1", sizeof("mqid1") - 1, &HTTPPrint_mqid1 },
{ "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 },
@ -813,6 +837,10 @@ dyn_var_handler_t HANDLERS_ARRAY[] = {
{ "mqgrp2", sizeof("mqgrp2") - 1, &HTTPPrint_mqgrp2 },
{ "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*/

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));
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
@ -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].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,