Merge branch 'main' into 'main-idf5'

# Conflicts:
#   src/MQTT.c
This commit is contained in:
Bogdan Pilyugin 2023-03-10 17:42:26 +00:00
commit d2b9f7fa29
6 changed files with 92 additions and 28 deletions

View File

@ -71,6 +71,8 @@ void PPPModemSoftRestart(void);
void PPPModemStart(void);
void PPPModemGetRSSI(void);
void ModemSendSMS(void);
void ModemSendAT(char *cmd, char *resp, int timeout);
void MQTTRun(void);

View File

@ -298,5 +298,17 @@ void PPPModemGetRSSI(void)
ESP_LOGW(TAG, "Signal %d, ber %d", rssi, ber);
}
void ModemSendAT(char *cmd, char *resp, int timeout)
{
esp_modem_at(dce, cmd, resp, timeout);
ESP_LOGI(TAG, "Command:%s", cmd);
ESP_LOGW(TAG, "%s", resp);
}
void ModemSendSMS(void)
{
}
#endif

View File

@ -23,6 +23,7 @@
#include "HTTPServer.h"
#include "LoRaWAN.h"
#include "Helpers.h"
static const char *TAG = "HTTPServerPost";
@ -97,7 +98,7 @@ static HTTP_IO_RESULT AfterPostHandler(httpd_req_t *req, const char *filename, c
static HTTP_IO_RESULT HTTPPostAdaptersSettings(httpd_req_t *req, char *PostData)
{
char tmp[32];
char tmp[33];
#if CONFIG_WEBGUIAPP_ETHERNET_ENABLE
bool TempIsETHEnabled = false;
@ -218,6 +219,30 @@ static HTTP_IO_RESULT HTTPPostAdaptersSettings(httpd_req_t *req, char *PostData)
}
#endif
#if CONFIG_WEBGUIAPP_LORAWAN_ENABLE
bool TempIsLoRaEnabled = false;
if (httpd_query_key_value(PostData, "lren", tmp, sizeof(tmp)) == ESP_OK)
{
if (!strcmp((const char*) tmp, (const char*) "1"))
TempIsLoRaEnabled = true;
}
if (httpd_query_key_value(PostData, "lrdvid", tmp, sizeof(tmp)) == ESP_OK)
{
if (strlen(tmp) == 16)
StrToBytesLen((unsigned char*) tmp, (unsigned char*) GetSysConf()->lorawanSettings.DevEui, 16);
}
if (httpd_query_key_value(PostData, "lrapid", tmp, sizeof(tmp)) == ESP_OK)
{
if (strlen(tmp) == 16)
StrToBytesLen((unsigned char*) tmp, (unsigned char*) GetSysConf()->lorawanSettings.AppEui, 16);
}
if (httpd_query_key_value(PostData, "lrapkey", tmp, sizeof(tmp)) == ESP_OK)
{
if (strlen(tmp) == 32)
StrToBytesLen((unsigned char*) tmp, (unsigned char*) GetSysConf()->lorawanSettings.AppKey, 32);
}
#endif
if (httpd_query_key_value(PostData, "wifisc", tmp, 4) == ESP_OK)
{
if (!strcmp(tmp, (const char*) "prs"))
@ -259,6 +284,13 @@ static HTTP_IO_RESULT HTTPPostAdaptersSettings(httpd_req_t *req, char *PostData)
GetSysConf()->gsmSettings.Flags1.bIsGSMEnabled = TempIsGSMEnabled;
#endif
}
else if (!strcmp(tmp, (const char*) "lora"))
{
#if CONFIG_WEBGUIAPP_LORAWAN_ENABLE
GetSysConf()->lorawanSettings.Flags1.bIsLoRaWANEnabled = TempIsLoRaEnabled;
#endif
}
if (httpd_query_key_value(PostData, "apply", tmp, 5) == ESP_OK)
{
@ -484,21 +516,29 @@ static HTTP_IO_RESULT HTTPPostSystemSettings(httpd_req_t *req, char *PostData)
{
if (!strcmp(tmp, (const char*) "1"))
{
return HTTP_IO_DONE_NOREFRESH;
}
#if CONFIG_WEBGUIAPP_GPRS_ENABLE
else if (!strcmp(tmp, (const char*) "2"))
{
WiFiDisconnect();
char resp[256] = {0};
ModemSendAT("AT+CCLK?\r", resp, 200);
return HTTP_IO_DONE_NOREFRESH;
}
else if (!strcmp(tmp, (const char*) "3"))
{
char resp[256] = {0};
ModemSendAT("ATD+79022518532;\r", resp, 200);
return HTTP_IO_DONE_NOREFRESH;
}
else if (!strcmp(tmp, (const char*) "4"))
{
char resp[256] = {0};
ModemSendAT("ATH\r", resp, 200);
return HTTP_IO_DONE_NOREFRESH;
}
#endif
else if (!strcmp(tmp, (const char*) "5"))
{
return HTTP_IO_DONE_NOREFRESH;

View File

@ -27,7 +27,7 @@
#include "esp_wifi.h"
#include "NetTransport.h"
#include "esp_ota_ops.h"
#include "ROMFS.h"
#include "romfs.h"
#include "esp_idf_version.h"
#include "jWrite.h"

View File

@ -62,9 +62,12 @@ void regLoRaUserReceiveHandler(
esp_err_t LORASendData(LORA_DATA_SEND_STRUCT *pdss)
{
if (LORAMessagesQueueHandle == NULL)
return ESP_ERR_INVALID_ARG;
char *ptr = (char*) malloc(MESSAGE_LENGTH);
if (ptr)
{
ESP_LOGW(TAG, "memory allocate %d byte", MESSAGE_LENGTH);
memcpy(ptr, pdss->raw_data_ptr, MESSAGE_LENGTH);
LORA_DATA_SEND_STRUCT DSS;
DSS.raw_data_ptr = ptr;
@ -75,6 +78,7 @@ esp_err_t LORASendData(LORA_DATA_SEND_STRUCT *pdss)
else
{
free(ptr);
ESP_LOGW(TAG, "memory free (queue full) %d byte", MESSAGE_LENGTH);
return ESP_ERR_TIMEOUT;
}
}
@ -118,6 +122,7 @@ void LoRaWANTransportTask(void *pvParameter)
#endif
ttn_transmit_message((const uint8_t*) DSS.raw_data_ptr, MESSAGE_LENGTH, 1, true);
free(DSS.raw_data_ptr);
ESP_LOGW(TAG, "memory free (transmitted) %d byte", MESSAGE_LENGTH);
}
else
{
@ -128,7 +133,6 @@ void LoRaWANTransportTask(void *pvParameter)
}
}
void LoRaWANRejoin(void)
{
ttn_rejoin();
@ -174,7 +178,6 @@ void LoRaWANInitJoinTask(void *pvParameter)
}
#endif
void LoRaWANStart(void)
{
#ifdef CONFIG_WEBGUIAPP_LORAWAN_ENABLE

View File

@ -30,6 +30,8 @@
#define MQTT_MESSAGE_BUFER_LENTH 5 //size of mqtt queue
#define MQTT_RECONNECT_CHANGE_ADAPTER 3
#define MQTT_RECONNECT_TIMEOUT 40
#if CONFIG_WEBGUIAPP_MQTT_ENABLE
QueueHandle_t MQTT1MessagesQueueHandle;
@ -297,8 +299,13 @@ static void start_mqtt()
strcpy(tmp, GetSysConf()->mqttStation[i].ClientID);
strcat(tmp, "-");
strcat(tmp, GetSysConf()->ID);
<<<<<<< src/MQTT.c
//mqtt_cfg.client_id = tmp;
mqtt_cfg.credentials.client_id = tmp;
=======
mqtt_cfg.client_id = tmp;
mqtt_cfg.reconnect_timeout_ms = MQTT_RECONNECT_TIMEOUT * 1000;
>>>>>>> src/MQTT.c
mqtt[i].is_connected = false;
mqtt[i].mqtt_index = i;
//mqtt_cfg.user_context = (void*) &mqtt[i];