conditional build of mqtt code
This commit is contained in:
parent
b49073877d
commit
13a0cdbe4c
63
Kconfig
63
Kconfig
|
|
@ -167,6 +167,22 @@ menu "WebGuiApp configuration"
|
||||||
config WEBGUIAPP_ETHERNET_ON
|
config WEBGUIAPP_ETHERNET_ON
|
||||||
bool "Default Ethernet switched on"
|
bool "Default Ethernet switched on"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
config WEBGUIAPP_ETH_IP_DEFAULT
|
||||||
|
string "Default IP address"
|
||||||
|
default "192.168.1.150"
|
||||||
|
|
||||||
|
config WEBGUIAPP_ETH_MASK_DEFAULT
|
||||||
|
string "Default network mask"
|
||||||
|
default "255.255.255.0"
|
||||||
|
|
||||||
|
config WEBGUIAPP_ETH_GATEWAY_DEFAULT
|
||||||
|
string "Default gateway"
|
||||||
|
default "192.168.1.150"
|
||||||
|
|
||||||
|
config WEBGUIAPP_ETHERNET_DHCP_DEFAULT
|
||||||
|
bool "Default Ethernet DHCP client on"
|
||||||
|
default n
|
||||||
|
|
||||||
config GPIO_RANGE_MIN
|
config GPIO_RANGE_MIN
|
||||||
int
|
int
|
||||||
|
|
@ -529,6 +545,53 @@ menu "WebGuiApp configuration"
|
||||||
endif
|
endif
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
menu "MQTT settings"
|
||||||
|
config WEBGUIAPP_MQTT_ENABLE
|
||||||
|
bool "Enabled MQTT transport"
|
||||||
|
default y
|
||||||
|
|
||||||
|
if WEBGUIAPP_MQTT_ENABLE
|
||||||
|
config MQTT_CLIENTS_NUM
|
||||||
|
int "Number of MQTT clients"
|
||||||
|
range 1 2
|
||||||
|
default 2
|
||||||
|
|
||||||
|
config MQTT_ON
|
||||||
|
bool "Enable MQTT client"
|
||||||
|
default y
|
||||||
|
|
||||||
|
config MQTT_SERVER_URL
|
||||||
|
string "MQTT server URL"
|
||||||
|
default "myfirstmqttserver.com"
|
||||||
|
|
||||||
|
config MQTT_SERVER_PORT
|
||||||
|
int "MQTT server port"
|
||||||
|
range 1 65535
|
||||||
|
default 1883
|
||||||
|
|
||||||
|
config MQTT_CLIENT_ID_1
|
||||||
|
string "MQTT_1 client ID"
|
||||||
|
default "DEVID1"
|
||||||
|
|
||||||
|
if MQTT_CLIENTS_NUM > 1
|
||||||
|
config MQTT_CLIENT_ID_2
|
||||||
|
string "MQTT_2 client ID"
|
||||||
|
default "DEVID2"
|
||||||
|
endif
|
||||||
|
|
||||||
|
config MQTT_ROOT_TOPIC
|
||||||
|
string "MQTT root topic"
|
||||||
|
default "ROOTTOPIC"
|
||||||
|
|
||||||
|
config MQTT_USERNAME
|
||||||
|
string "MQTT user name"
|
||||||
|
default "username"
|
||||||
|
|
||||||
|
config MQTT_PASSWORD
|
||||||
|
string "MQTT user password"
|
||||||
|
default "password"
|
||||||
|
|
||||||
|
endif
|
||||||
|
endmenu
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
@ -29,8 +29,6 @@
|
||||||
#include "esp_netif.h"
|
#include "esp_netif.h"
|
||||||
#include <sdkconfig.h>
|
#include <sdkconfig.h>
|
||||||
|
|
||||||
#define MQTT_CLIENTS_NUM 2
|
|
||||||
|
|
||||||
#define DEFAULT_HOST_NAME "DEVICE_HOSTNAME" ///<Default host name of device
|
#define DEFAULT_HOST_NAME "DEVICE_HOSTNAME" ///<Default host name of device
|
||||||
|
|
||||||
#define SYSTEM_DEFAULT_USERNAME "user"
|
#define SYSTEM_DEFAULT_USERNAME "user"
|
||||||
|
|
@ -131,7 +129,7 @@
|
||||||
} Flags1;
|
} Flags1;
|
||||||
} sntpClient;
|
} sntpClient;
|
||||||
|
|
||||||
|
#if CONFIG_WEBGUIAPP_MQTT_ENABLE
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
char ServerAddr[32];
|
char ServerAddr[32];
|
||||||
|
|
@ -151,7 +149,8 @@
|
||||||
char b6 :1;
|
char b6 :1;
|
||||||
char bIsGlobalEnabled :1;
|
char bIsGlobalEnabled :1;
|
||||||
} Flags1;
|
} Flags1;
|
||||||
} mqttStation[MQTT_CLIENTS_NUM];
|
} mqttStation[CONFIG_MQTT_CLIENTS_NUM];
|
||||||
|
#endif
|
||||||
|
|
||||||
#if CONFIG_WEBGUIAPP_ETHERNET_ENABLE
|
#if CONFIG_WEBGUIAPP_ETHERNET_ENABLE
|
||||||
struct
|
struct
|
||||||
|
|
|
||||||
|
|
@ -400,6 +400,7 @@ static HTTP_IO_RESULT HTTPPostIndex32(httpd_req_t *req, char *PostData)
|
||||||
|
|
||||||
static HTTP_IO_RESULT HTTPPostIndex31(httpd_req_t *req, char *PostData)
|
static HTTP_IO_RESULT HTTPPostIndex31(httpd_req_t *req, char *PostData)
|
||||||
{
|
{
|
||||||
|
#if CONFIG_WEBGUIAPP_MQTT_ENABLE
|
||||||
char tmp[33];
|
char tmp[33];
|
||||||
bool TempIsMQTT1Enabled = false;
|
bool TempIsMQTT1Enabled = false;
|
||||||
bool TempIsMQTT2Enabled = false;
|
bool TempIsMQTT2Enabled = false;
|
||||||
|
|
@ -469,6 +470,7 @@ static HTTP_IO_RESULT HTTPPostIndex31(httpd_req_t *req, char *PostData)
|
||||||
return HTTP_IO_REDIRECT;
|
return HTTP_IO_REDIRECT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
return HTTP_IO_DONE;
|
return HTTP_IO_DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
/*! Copyright 2022 Bogdan Pilyugin
|
/*! Copyright 2022 Bogdan Pilyugin
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -108,7 +108,6 @@ static void PrintCheckbox(char *VarData, void *arg, bool checked)
|
||||||
snprintf(VarData, MAX_DYNVAR_LENGTH, " ");
|
snprintf(VarData, MAX_DYNVAR_LENGTH, " ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void HTTPPrint_status_fail(char *VarData, void *arg)
|
static void HTTPPrint_status_fail(char *VarData, void *arg)
|
||||||
{
|
{
|
||||||
snprintf(VarData, MAX_DYNVAR_LENGTH, "none");
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "none");
|
||||||
|
|
@ -129,15 +128,12 @@ static void HTTPPrint_pass(char *VarData, void *arg)
|
||||||
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", "******");
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", "******");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Default string if not found handler
|
//Default string if not found handler
|
||||||
static void HTTPPrint_DEF(char *VarData, void *arg)
|
static void HTTPPrint_DEF(char *VarData, void *arg)
|
||||||
{
|
{
|
||||||
snprintf(VarData, MAX_DYNVAR_LENGTH, "#DEF");
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "#DEF");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if CONFIG_WEBGUIAPP_WIFI_ENABLE
|
#if CONFIG_WEBGUIAPP_WIFI_ENABLE
|
||||||
|
|
||||||
static void HTTPPrint_wfen(char *VarData, void *arg)
|
static void HTTPPrint_wfen(char *VarData, void *arg)
|
||||||
|
|
@ -381,6 +377,67 @@ void HTTPPrint_gsmmac(char *VarData, void *arg)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_WEBGUIAPP_MQTT_ENABLE
|
||||||
|
void HTTPPrint_mqtten1(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
PrintCheckbox(VarData, arg, GetSysConf()->mqttStation[0].Flags1.bIsGlobalEnabled);
|
||||||
|
}
|
||||||
|
void HTTPPrint_ipcld1(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", GetSysConf()->mqttStation[0].ServerAddr);
|
||||||
|
}
|
||||||
|
void HTTPPrint_mport1(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%d", GetSysConf()->mqttStation[0].ServerPort);
|
||||||
|
}
|
||||||
|
void HTTPPrint_idcld1(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", GetSysConf()->mqttStation[0].ClientID);
|
||||||
|
}
|
||||||
|
void HTTPPrint_topic1(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", GetSysConf()->mqttStation[0].RootTopic);
|
||||||
|
}
|
||||||
|
void HTTPPrint_clname1(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", GetSysConf()->mqttStation[0].UserName);
|
||||||
|
}
|
||||||
|
void HTTPPrint_clpass1(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", "******");
|
||||||
|
}
|
||||||
|
|
||||||
|
#if CONFIG_MQTT_CLIENTS_NUM == 2
|
||||||
|
void HTTPPrint_mqtten2(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
PrintCheckbox(VarData, arg, GetSysConf()->mqttStation[1].Flags1.bIsGlobalEnabled);
|
||||||
|
}
|
||||||
|
void HTTPPrint_ipcld2(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", GetSysConf()->mqttStation[1].ServerAddr);
|
||||||
|
}
|
||||||
|
void HTTPPrint_mport2(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%d", GetSysConf()->mqttStation[1].ServerPort);
|
||||||
|
}
|
||||||
|
void HTTPPrint_idcld2(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", GetSysConf()->mqttStation[1].ClientID);
|
||||||
|
}
|
||||||
|
void HTTPPrint_topic2(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", GetSysConf()->mqttStation[1].RootTopic);
|
||||||
|
}
|
||||||
|
void HTTPPrint_clname2(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", GetSysConf()->mqttStation[1].UserName);
|
||||||
|
}
|
||||||
|
void HTTPPrint_clpass2(char *VarData, void *arg)
|
||||||
|
{
|
||||||
|
snprintf(VarData, MAX_DYNVAR_LENGTH, "%s", "******");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
dyn_var_handler_t HANDLERS_ARRAY[] = {
|
dyn_var_handler_t HANDLERS_ARRAY[] = {
|
||||||
/*Ststem settings*/
|
/*Ststem settings*/
|
||||||
|
|
@ -441,67 +498,85 @@ dyn_var_handler_t HANDLERS_ARRAY[] = {
|
||||||
{ "gsmmac", sizeof("gsmmac") - 1, &HTTPPrint_gsmmac },
|
{ "gsmmac", sizeof("gsmmac") - 1, &HTTPPrint_gsmmac },
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_WEBGUIAPP_MQTT_ENABLE
|
||||||
|
/*MQTT*/
|
||||||
|
{ "mqtten1", sizeof("mqtten1") - 1, &HTTPPrint_mqtten1 },
|
||||||
|
{ "ipcld1", sizeof("ipcld1") - 1, &HTTPPrint_ipcld1 },
|
||||||
|
{ "mport1", sizeof("mport1") - 1, &HTTPPrint_mport1 },
|
||||||
|
{ "idcld1", sizeof("idcld1") - 1, &HTTPPrint_idcld1 },
|
||||||
|
{ "topic1", sizeof("topic1") - 1, &HTTPPrint_topic1 },
|
||||||
|
{ "clname1", sizeof("clname1") - 1, &HTTPPrint_clname1 },
|
||||||
|
{ "clpass1", sizeof("clpass1") - 1, &HTTPPrint_clpass1 },
|
||||||
|
#if CONFIG_MQTT_CLIENTS_NUM == 2
|
||||||
|
{ "mqtten2", sizeof("mqtten2") - 1, &HTTPPrint_mqtten2 },
|
||||||
|
{ "ipcld2", sizeof("ipcld2") - 1, &HTTPPrint_ipcld2 },
|
||||||
|
{ "mport2", sizeof("mport2") - 1, &HTTPPrint_mport2 },
|
||||||
|
{ "idcld2", sizeof("idcld2") - 1, &HTTPPrint_idcld2 },
|
||||||
|
{ "topic2", sizeof("topic2") - 1, &HTTPPrint_topic2 },
|
||||||
|
{ "clname2", sizeof("clname2") - 1, &HTTPPrint_clname2 },
|
||||||
|
{ "clpass2", sizeof("clpass2") - 1, &HTTPPrint_clpass2 },
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
/*ERROR report*/
|
/*ERROR report*/
|
||||||
{ "status_fail", sizeof("status_fail") - 1, &HTTPPrint_status_fail },
|
{ "status_fail", sizeof("status_fail") - 1, &HTTPPrint_status_fail },
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int HTTPPrint(httpd_req_t *req, char *buf, char *var)
|
||||||
int HTTPPrint(httpd_req_t *req, char* buf, char* var)
|
|
||||||
{
|
{
|
||||||
char VarData[MAX_DYNVAR_LENGTH];
|
char VarData[MAX_DYNVAR_LENGTH];
|
||||||
const char incPat[] = "inc:";
|
const char incPat[] = "inc:";
|
||||||
const int incPatLen = sizeof(incPat) - 1;
|
const int incPatLen = sizeof(incPat) - 1;
|
||||||
if (!memcmp(var, incPat, incPatLen))
|
if (!memcmp(var, incPat, incPatLen))
|
||||||
|
{
|
||||||
|
const char rootFS[] = "/";
|
||||||
|
char filename[32];
|
||||||
|
filename[0] = 0x00;
|
||||||
|
var += incPatLen;
|
||||||
|
strcat(filename, rootFS);
|
||||||
|
strcat(filename, var);
|
||||||
|
espfs_file_t *file = espfs_fopen(fs, filename);
|
||||||
|
struct espfs_stat_t stat;
|
||||||
|
if (file)
|
||||||
{
|
{
|
||||||
const char rootFS[] = "/";
|
espfs_fstat(file, &stat);
|
||||||
char filename[32];
|
int readBytes = espfs_fread(file, buf, stat.size);
|
||||||
filename[0] = 0x00;
|
espfs_fclose(file);
|
||||||
var += incPatLen;
|
return readBytes;
|
||||||
strcat(filename, rootFS);
|
|
||||||
strcat(filename, var);
|
|
||||||
espfs_file_t *file = espfs_fopen(fs, filename);
|
|
||||||
struct espfs_stat_t stat;
|
|
||||||
if (file)
|
|
||||||
{
|
|
||||||
espfs_fstat(file, &stat);
|
|
||||||
int readBytes = espfs_fread(file, buf, stat.size);
|
|
||||||
espfs_fclose(file);
|
|
||||||
return readBytes;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool fnd = false;
|
bool fnd = false;
|
||||||
char *p2 = var + strlen(var) - 1; //last var symbol
|
char *p2 = var + strlen(var) - 1; //last var symbol
|
||||||
int arg = 0;
|
int arg = 0;
|
||||||
//searching for tag in handles array
|
//searching for tag in handles array
|
||||||
for (int i = 0; i < (sizeof(HANDLERS_ARRAY) / sizeof(HANDLERS_ARRAY[0])); ++i)
|
for (int i = 0; i < (sizeof(HANDLERS_ARRAY) / sizeof(HANDLERS_ARRAY[0])); ++i)
|
||||||
{
|
{
|
||||||
if (*p2 == ')')
|
if (*p2 == ')')
|
||||||
{ //found close brace
|
{ //found close brace
|
||||||
char *p1 = p2;
|
char *p1 = p2;
|
||||||
while ((*p1 != '(') && (p1 > var))
|
while ((*p1 != '(') && (p1 > var))
|
||||||
--p1;
|
--p1;
|
||||||
if (*p1 == '(')
|
if (*p1 == '(')
|
||||||
{ //found open brace
|
{ //found open brace
|
||||||
*p1 = 0x00; //trim variable to name part
|
*p1 = 0x00; //trim variable to name part
|
||||||
++p1; //to begin of argument
|
++p1; //to begin of argument
|
||||||
*p2 = 0x00; //set end of argument
|
*p2 = 0x00; //set end of argument
|
||||||
arg = atoi(p1);
|
arg = atoi(p1);
|
||||||
}
|
|
||||||
}
|
|
||||||
if (strcmp(var, HANDLERS_ARRAY[i].tag) == 0
|
|
||||||
&& HANDLERS_ARRAY[i].HandlerRoutine != NULL)
|
|
||||||
{
|
|
||||||
HANDLERS_ARRAY[i].HandlerRoutine(VarData, (void*) &arg);
|
|
||||||
fnd = true;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!fnd)
|
if (strcmp(var, HANDLERS_ARRAY[i].tag) == 0
|
||||||
HTTPPrint_DEF(VarData, NULL);
|
&& HANDLERS_ARRAY[i].HandlerRoutine != NULL)
|
||||||
int dLen = strlen(VarData);
|
{
|
||||||
memcpy(buf, VarData, dLen);
|
HANDLERS_ARRAY[i].HandlerRoutine(VarData, (void*) &arg);
|
||||||
return dLen;
|
fnd = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!fnd)
|
||||||
|
HTTPPrint_DEF(VarData, NULL);
|
||||||
|
int dLen = strlen(VarData);
|
||||||
|
memcpy(buf, VarData, dLen);
|
||||||
|
return dLen;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
22
src/MQTT.c
22
src/MQTT.c
|
|
@ -42,19 +42,16 @@
|
||||||
#define MAX_POST_DATA_LENTH 512
|
#define MAX_POST_DATA_LENTH 512
|
||||||
#define MQTT_RECONNECT_CHANGE_ADAPTER 3
|
#define MQTT_RECONNECT_CHANGE_ADAPTER 3
|
||||||
|
|
||||||
|
#if CONFIG_WEBGUIAPP_MQTT_ENABLE
|
||||||
|
|
||||||
static SemaphoreHandle_t xSemaphoreMQTTHandle = NULL;
|
static SemaphoreHandle_t xSemaphoreMQTTHandle = NULL;
|
||||||
static StaticSemaphore_t xSemaphoreMQTTBuf;
|
static StaticSemaphore_t xSemaphoreMQTTBuf;
|
||||||
|
|
||||||
static const int MQTT1_WAIT_DELIVERY_BIT = BIT0;
|
|
||||||
static const int MQTT2_WAIT_DELIVERY_BIT = BIT1;
|
|
||||||
|
|
||||||
static StaticQueue_t xStaticMQTT1MessagesQueue;
|
static StaticQueue_t xStaticMQTT1MessagesQueue;
|
||||||
static StaticQueue_t xStaticMQTT2MessagesQueue;
|
static StaticQueue_t xStaticMQTT2MessagesQueue;
|
||||||
uint8_t MQTT1MessagesQueueStorageArea[CH_MESSAGE_BUFER_LENTH * sizeof(DATA_SEND_STRUCT)];
|
uint8_t MQTT1MessagesQueueStorageArea[CH_MESSAGE_BUFER_LENTH * sizeof(DATA_SEND_STRUCT)];
|
||||||
uint8_t MQTT2MessagesQueueStorageArea[CH_MESSAGE_BUFER_LENTH * sizeof(DATA_SEND_STRUCT)];
|
uint8_t MQTT2MessagesQueueStorageArea[CH_MESSAGE_BUFER_LENTH * sizeof(DATA_SEND_STRUCT)];
|
||||||
|
|
||||||
|
mqtt_client_t mqtt[CONFIG_MQTT_CLIENTS_NUM] = { 0 };
|
||||||
mqtt_client_t mqtt[MQTT_CLIENTS_NUM] = { 0 };
|
|
||||||
|
|
||||||
static const char topic_tx[] = "/UPLINK/"; //subtopic for transmit
|
static const char topic_tx[] = "/UPLINK/"; //subtopic for transmit
|
||||||
static const char topic_rx[] = "/DOWNLINK/"; //subtopic to receive
|
static const char topic_rx[] = "/DOWNLINK/"; //subtopic to receive
|
||||||
|
|
@ -274,7 +271,7 @@ static void reconnect_MQTT_handler(void *arg, esp_event_base_t event_base,
|
||||||
int32_t event_id,
|
int32_t event_id,
|
||||||
void *event_data)
|
void *event_data)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MQTT_CLIENTS_NUM; ++i)
|
for (int i = 0; i < CONFIG_MQTT_CLIENTS_NUM; ++i)
|
||||||
{
|
{
|
||||||
if (mqtt[i].mqtt)
|
if (mqtt[i].mqtt)
|
||||||
{
|
{
|
||||||
|
|
@ -569,7 +566,7 @@ api_json_err:
|
||||||
|
|
||||||
void MQTTStart(void)
|
void MQTTStart(void)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MQTT_CLIENTS_NUM; ++i)
|
for (int i = 0; i < CONFIG_MQTT_CLIENTS_NUM; ++i)
|
||||||
{
|
{
|
||||||
if (mqtt[i].mqtt)
|
if (mqtt[i].mqtt)
|
||||||
esp_mqtt_client_reconnect(mqtt[i].mqtt);
|
esp_mqtt_client_reconnect(mqtt[i].mqtt);
|
||||||
|
|
@ -578,7 +575,7 @@ void MQTTStart(void)
|
||||||
|
|
||||||
void MQTTStop(void)
|
void MQTTStop(void)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MQTT_CLIENTS_NUM; ++i)
|
for (int i = 0; i < CONFIG_MQTT_CLIENTS_NUM; ++i)
|
||||||
{
|
{
|
||||||
if (mqtt[i].mqtt)
|
if (mqtt[i].mqtt)
|
||||||
esp_mqtt_client_disconnect(mqtt[i].mqtt);
|
esp_mqtt_client_disconnect(mqtt[i].mqtt);
|
||||||
|
|
@ -587,7 +584,7 @@ void MQTTStop(void)
|
||||||
|
|
||||||
void MQTTReconnect(void)
|
void MQTTReconnect(void)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MQTT_CLIENTS_NUM; ++i)
|
for (int i = 0; i < CONFIG_MQTT_CLIENTS_NUM; ++i)
|
||||||
{
|
{
|
||||||
if (mqtt[i].mqtt)
|
if (mqtt[i].mqtt)
|
||||||
{
|
{
|
||||||
|
|
@ -677,7 +674,7 @@ static void start_mqtt()
|
||||||
char url[40];
|
char url[40];
|
||||||
char tmp[40];
|
char tmp[40];
|
||||||
|
|
||||||
for (int i = 0; i < MQTT_CLIENTS_NUM; ++i)
|
for (int i = 0; i < CONFIG_MQTT_CLIENTS_NUM; ++i)
|
||||||
{
|
{
|
||||||
if (GetSysConf()->mqttStation[i].Flags1.bIsGlobalEnabled)
|
if (GetSysConf()->mqttStation[i].Flags1.bIsGlobalEnabled)
|
||||||
{
|
{
|
||||||
|
|
@ -729,12 +726,11 @@ void MQTTRun(void)
|
||||||
&xStaticMQTT2MessagesQueue);
|
&xStaticMQTT2MessagesQueue);
|
||||||
|
|
||||||
mqtt[0].mqtt_queue = MQTT1MessagesQueueHandle;
|
mqtt[0].mqtt_queue = MQTT1MessagesQueueHandle;
|
||||||
mqtt[0].wait_delivery_bit = MQTT1_WAIT_DELIVERY_BIT;
|
|
||||||
mqtt[1].mqtt_queue = MQTT2MessagesQueueHandle;
|
mqtt[1].mqtt_queue = MQTT2MessagesQueueHandle;
|
||||||
mqtt[1].wait_delivery_bit = MQTT2_WAIT_DELIVERY_BIT;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
start_mqtt();
|
start_mqtt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
/*! Copyright 2022 Bogdan Pilyugin
|
/*! Copyright 2022 Bogdan Pilyugin
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -33,15 +33,14 @@
|
||||||
|
|
||||||
static SYS_CONFIG SysConfig;
|
static SYS_CONFIG SysConfig;
|
||||||
|
|
||||||
|
|
||||||
static void ResetSysConfig(SYS_CONFIG *Conf)
|
static void ResetSysConfig(SYS_CONFIG *Conf)
|
||||||
{
|
{
|
||||||
#if CONFIG_WEBGUIAPP_WIFI_ENABLE
|
#if CONFIG_WEBGUIAPP_WIFI_ENABLE
|
||||||
Conf->wifiSettings.Flags1.bIsWiFiEnabled = CONFIG_WEBGUIAPP_WIFI_ON;
|
Conf->wifiSettings.Flags1.bIsWiFiEnabled = CONFIG_WEBGUIAPP_WIFI_ON;
|
||||||
esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_WIFI_IP_STA, (esp_ip4_addr_t*)&Conf->wifiSettings.InfIPAddr);
|
esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_WIFI_IP_STA, (esp_ip4_addr_t*) &Conf->wifiSettings.InfIPAddr);
|
||||||
esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_WIFI_MASK_STA, (esp_ip4_addr_t*)&Conf->wifiSettings.InfMask);
|
esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_WIFI_MASK_STA, (esp_ip4_addr_t*) &Conf->wifiSettings.InfMask);
|
||||||
esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_WIFI_GATEWAY_STA, (esp_ip4_addr_t*)&Conf->wifiSettings.InfGateway);
|
esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_WIFI_GATEWAY_STA, (esp_ip4_addr_t*) &Conf->wifiSettings.InfGateway);
|
||||||
esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_WIFI_IP_AP, (esp_ip4_addr_t*)&Conf->wifiSettings.ApIPAddr);
|
esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_WIFI_IP_AP, (esp_ip4_addr_t*) &Conf->wifiSettings.ApIPAddr);
|
||||||
Conf->wifiSettings.Flags1.bIsAP = true;
|
Conf->wifiSettings.Flags1.bIsAP = true;
|
||||||
memcpy(Conf->wifiSettings.ApSecurityKey, CONFIG_WEBGUIAPP_WIFI_KEY_AP, sizeof(CONFIG_WEBGUIAPP_WIFI_KEY_AP));
|
memcpy(Conf->wifiSettings.ApSecurityKey, CONFIG_WEBGUIAPP_WIFI_KEY_AP, sizeof(CONFIG_WEBGUIAPP_WIFI_KEY_AP));
|
||||||
memcpy(Conf->wifiSettings.InfSSID, CONFIG_WEBGUIAPP_WIFI_SSID_STA, sizeof(CONFIG_WEBGUIAPP_WIFI_SSID_STA));
|
memcpy(Conf->wifiSettings.InfSSID, CONFIG_WEBGUIAPP_WIFI_SSID_STA, sizeof(CONFIG_WEBGUIAPP_WIFI_SSID_STA));
|
||||||
|
|
@ -49,6 +48,38 @@ static void ResetSysConfig(SYS_CONFIG *Conf)
|
||||||
Conf->wifiSettings.Flags1.bIsDHCPEnabled = CONFIG_WEBGUIAPP_WIFI_DHCP_ON;
|
Conf->wifiSettings.Flags1.bIsDHCPEnabled = CONFIG_WEBGUIAPP_WIFI_DHCP_ON;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_WEBGUIAPP_ETHERNET_ENABLE
|
||||||
|
Conf->ethSettings.Flags1.bIsETHEnabled = CONFIG_WEBGUIAPP_ETHERNET_ON;
|
||||||
|
esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_ETH_IP_DEFAULT, (esp_ip4_addr_t*) &Conf->ethSettings.IPAddr);
|
||||||
|
esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_ETH_MASK_DEFAULT, (esp_ip4_addr_t*) &Conf->ethSettings.Mask);
|
||||||
|
esp_netif_str_to_ip4(CONFIG_WEBGUIAPP_ETH_GATEWAY_DEFAULT, (esp_ip4_addr_t*) &Conf->ethSettings.Gateway);
|
||||||
|
Conf->ethSettings.Flags1.bIsDHCPEnabled = CONFIG_WEBGUIAPP_ETHERNET_DHCP_ON ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_WEBGUIAPP_GPRS_ENABLE
|
||||||
|
Conf->gsmSettings.Flags1.bIsGSMEnabled = true;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_WEBGUIAPP_MQTT_ENABLE
|
||||||
|
Conf->mqttStation[0].Flags1.bIsGlobalEnabled = CONFIG_MQTT_ON;
|
||||||
|
memcpy(Conf->mqttStation[0].ServerAddr, CONFIG_MQTT_SERVER_URL, sizeof(CONFIG_MQTT_SERVER_URL));
|
||||||
|
Conf->mqttStation[0].ServerPort = CONFIG_MQTT_SERVER_PORT;
|
||||||
|
memcpy(Conf->mqttStation[0].ClientID, CONFIG_MQTT_CLIENT_ID_1, sizeof(CONFIG_MQTT_CLIENT_ID_1));
|
||||||
|
memcpy(Conf->mqttStation[0].RootTopic, CONFIG_MQTT_ROOT_TOPIC, sizeof(CONFIG_MQTT_ROOT_TOPIC));
|
||||||
|
memcpy(Conf->mqttStation[0].UserName, CONFIG_MQTT_USERNAME, sizeof(CONFIG_MQTT_USERNAME));
|
||||||
|
memcpy(Conf->mqttStation[0].UserPass, CONFIG_MQTT_PASSWORD, sizeof(CONFIG_MQTT_PASSWORD));
|
||||||
|
#if CONFIG_MQTT_CLIENTS_NUM == 2
|
||||||
|
Conf->mqttStation[1].Flags1.bIsGlobalEnabled = CONFIG_MQTT_ON;
|
||||||
|
memcpy(Conf->mqttStation[1].ServerAddr, CONFIG_MQTT_SERVER_URL, sizeof(CONFIG_MQTT_SERVER_URL));
|
||||||
|
Conf->mqttStation[1].ServerPort = CONFIG_MQTT_SERVER_PORT;
|
||||||
|
memcpy(Conf->mqttStation[1].ClientID, CONFIG_MQTT_CLIENT_ID_2, sizeof(CONFIG_MQTT_CLIENT_ID_2));
|
||||||
|
memcpy(Conf->mqttStation[1].RootTopic, CONFIG_MQTT_ROOT_TOPIC, sizeof(CONFIG_MQTT_ROOT_TOPIC));
|
||||||
|
memcpy(Conf->mqttStation[1].UserName, CONFIG_MQTT_USERNAME, sizeof(CONFIG_MQTT_USERNAME));
|
||||||
|
memcpy(Conf->mqttStation[1].UserPass, CONFIG_MQTT_PASSWORD, sizeof(CONFIG_MQTT_PASSWORD));
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
esp_err_t ReadNVSSysConfig(SYS_CONFIG *SysConf)
|
esp_err_t ReadNVSSysConfig(SYS_CONFIG *SysConf)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user