Compare commits
4 Commits
ea5bad2c1d
...
2a6f6233af
| Author | SHA1 | Date | |
|---|---|---|---|
| 2a6f6233af | |||
| b52dcdc5d8 | |||
| d254ff5c46 | |||
| a162ef8091 |
6
Kconfig
6
Kconfig
|
|
@ -812,6 +812,12 @@ menu "WebGUIApp"
|
||||||
endif
|
endif
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
menu "PPPoS configuration"
|
||||||
|
config WEBGUIAPP_PPPOS_ENABLE
|
||||||
|
bool "Enabled PPPoS transport"
|
||||||
|
default n
|
||||||
|
endmenu
|
||||||
|
|
||||||
menu "Serial port configuration"
|
menu "Serial port configuration"
|
||||||
|
|
||||||
config WEBGUIAPP_UART_TRANSPORT_ENABLE
|
config WEBGUIAPP_UART_TRANSPORT_ENABLE
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,7 @@ void EthStart(void);
|
||||||
|
|
||||||
void WiFiTransportTask(void *prm);
|
void WiFiTransportTask(void *prm);
|
||||||
|
|
||||||
|
void PPPConnReset (void);
|
||||||
|
|
||||||
void PPPModemColdStart(void);
|
void PPPModemColdStart(void);
|
||||||
void PPPModemSoftRestart(void);
|
void PPPModemSoftRestart(void);
|
||||||
|
|
@ -96,6 +97,7 @@ esp_netif_t* GetSTANetifAdapter(void);
|
||||||
esp_netif_t* GetAPNetifAdapter(void);
|
esp_netif_t* GetAPNetifAdapter(void);
|
||||||
esp_netif_t* GetETHNetifAdapter(void);
|
esp_netif_t* GetETHNetifAdapter(void);
|
||||||
|
|
||||||
|
|
||||||
bool isWIFIConnected(void);
|
bool isWIFIConnected(void);
|
||||||
bool isETHConnected(void);
|
bool isETHConnected(void);
|
||||||
bool isPPPConnected(void);
|
bool isPPPConnected(void);
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "CommandProcSys.h"
|
#include "CommandProcSys.h"
|
||||||
|
#include "NetTransport.h"
|
||||||
#include "webguiapp.h"
|
#include "webguiapp.h"
|
||||||
|
|
||||||
|
|
||||||
#define TAG "COMMAND_PROC_SYS"
|
#define TAG "COMMAND_PROC_SYS"
|
||||||
|
|
||||||
//#define MAX_OBJECTS_NUMBER CONFIG_WEBGUIAPP_MAX_OBJECTS_NUM
|
//#define MAX_OBJECTS_NUMBER CONFIG_WEBGUIAPP_MAX_OBJECTS_NUM
|
||||||
|
|
@ -48,6 +50,14 @@ static void SYSTEM_TEST_handle(char *obj, char *com, char *arg)
|
||||||
static void SYSTEM_REBOOT_handle(char *obj, char *com, char *arg)
|
static void SYSTEM_REBOOT_handle(char *obj, char *com, char *arg)
|
||||||
{
|
{
|
||||||
ESP_LOGI(TAG, "Object:%s, Command:%s, Argument %s", obj, com, arg);
|
ESP_LOGI(TAG, "Object:%s, Command:%s, Argument %s", obj, com, arg);
|
||||||
|
esp_restart();
|
||||||
|
}
|
||||||
|
static void MODEM_REBOOT_handle(char *obj, char *com, char *arg)
|
||||||
|
{
|
||||||
|
ESP_LOGI(TAG, "Object:%s, Command:%s, Argument %s", obj, com, arg);
|
||||||
|
#if CONFIG_WEBGUIAPP_GPRS_ENABLE
|
||||||
|
PPPConnReset();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
obj_struct_t *custom_com_obj_arr = NULL;
|
obj_struct_t *custom_com_obj_arr = NULL;
|
||||||
|
|
@ -65,9 +75,9 @@ const obj_struct_t com_obj_arr[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.index = 0,
|
.index = 0,
|
||||||
.object_name = "SYSTEM1",
|
.object_name = "MODEM",
|
||||||
.allowed_actions = { "TEST", "REBOOT", "TEST2", "TEST3", "TEST4" },
|
.allowed_actions = { "TEST", "REBOOT", "TEST2", "TEST3", "TEST4" },
|
||||||
.command_handlers = { &SYSTEM_TEST_handle, &SYSTEM_REBOOT_handle }
|
.command_handlers = { &SYSTEM_TEST_handle, &MODEM_REBOOT_handle }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.index = 0,
|
.index = 0,
|
||||||
|
|
|
||||||
|
|
@ -62,13 +62,14 @@ void RegGSMReset(void (*gsm_rst)(uint8_t level)) { gsm_reset = gsm_rst; }
|
||||||
esp_netif_t *GetPPPNetifAdapter(void) {
|
esp_netif_t *GetPPPNetifAdapter(void) {
|
||||||
if (isPPPConn)
|
if (isPPPConn)
|
||||||
return ppp_netif;
|
return ppp_netif;
|
||||||
else
|
else
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
MODEM_INFO *GetPPPModemInfo(void) { return &mod_info; }
|
MODEM_INFO *GetPPPModemInfo(void) { return &mod_info; }
|
||||||
|
|
||||||
bool isPPPConnected(void) { return isPPPConn; }
|
bool isPPPConnected(void) { return isPPPConn; }
|
||||||
|
void PPPConnReset(void) { isPPPConn = false; }
|
||||||
|
|
||||||
#if CONFIG_WEBGUIAPP_GPRS_ENABLE
|
#if CONFIG_WEBGUIAPP_GPRS_ENABLE
|
||||||
static void on_ppp_changed(void *arg, esp_event_base_t event_base,
|
static void on_ppp_changed(void *arg, esp_event_base_t event_base,
|
||||||
|
|
@ -266,7 +267,8 @@ static void GSMInitTask(void *pvParameter) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ESP_LOGI(TAG, "PPP data mode OK");
|
ESP_LOGI(TAG, "PPP data mode OK");
|
||||||
xEventGroupWaitBits(event_group, CONNECT_BIT, pdTRUE, pdTRUE, pdMS_TO_TICKS(WAIT_FOR_GET_IP * 1000));
|
xEventGroupWaitBits(event_group, CONNECT_BIT, pdTRUE, pdTRUE,
|
||||||
|
pdMS_TO_TICKS(WAIT_FOR_GET_IP * 1000));
|
||||||
|
|
||||||
isPPPinitializing = false;
|
isPPPinitializing = false;
|
||||||
vTaskDelete(NULL);
|
vTaskDelete(NULL);
|
||||||
|
|
@ -281,7 +283,7 @@ modem_init_fail:
|
||||||
void PPPModemColdStart(void) {
|
void PPPModemColdStart(void) {
|
||||||
ResetType = 0;
|
ResetType = 0;
|
||||||
xTaskCreatePinnedToCore(GSMInitTask, "GSMInitTask", 1024 * 6, &ResetType, 3,
|
xTaskCreatePinnedToCore(GSMInitTask, "GSMInitTask", 1024 * 6, &ResetType, 3,
|
||||||
&initTaskhandle, 1);
|
&initTaskhandle, 1);
|
||||||
ESP_LOGI(TAG, "Start GSM cold initialization task");
|
ESP_LOGI(TAG, "Start GSM cold initialization task");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -303,7 +305,8 @@ static void GSMRunTask(void *pvParameter) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void PPPModemStart(void) {
|
void PPPModemStart(void) {
|
||||||
xTaskCreatePinnedToCore(GSMRunTask, "GSMRunTask", 1024 * 4, &ResetType, 3, NULL, 1);
|
xTaskCreatePinnedToCore(GSMRunTask, "GSMRunTask", 1024 * 4, &ResetType, 3,
|
||||||
|
NULL, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int PPPModemGetRSSI(void) {
|
int PPPModemGetRSSI(void) {
|
||||||
|
|
|
||||||
30
src/MQTT.c
30
src/MQTT.c
|
|
@ -20,6 +20,8 @@
|
||||||
*/
|
*/
|
||||||
#include <SysConfiguration.h>
|
#include <SysConfiguration.h>
|
||||||
#include <SystemApplication.h>
|
#include <SystemApplication.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include "esp_log.h"
|
#include "esp_log.h"
|
||||||
#include "Helpers.h"
|
#include "Helpers.h"
|
||||||
#include "NetTransport.h"
|
#include "NetTransport.h"
|
||||||
|
|
@ -161,14 +163,16 @@ esp_err_t ExternalServiceMQTTSend(char *servname, char *data, int len, int idx)
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAX_ERROR_JSON 256
|
#define MAX_ERROR_JSON 256
|
||||||
static char resp[256];
|
#define MAX_MQTT_PUBLICTEST_MESSAGE 1024
|
||||||
static char JSONMess[1024];
|
|
||||||
mqtt_app_err_t PublicTestMQTT(int idx)
|
mqtt_app_err_t PublicTestMQTT(int idx)
|
||||||
{
|
{
|
||||||
char tmp[10];
|
char tmp[10];
|
||||||
|
char *data = (char*) malloc(MAX_MQTT_PUBLICTEST_MESSAGE);
|
||||||
|
if (data == NULL)
|
||||||
|
return ESP_ERR_NO_MEM;
|
||||||
|
static char resp[256];
|
||||||
struct jWriteControl jwc;
|
struct jWriteControl jwc;
|
||||||
jwOpen(&jwc, JSONMess, 1024 - 64, JW_OBJECT, JW_COMPACT);
|
jwOpen(&jwc, data, 1024 - 64, JW_OBJECT, JW_COMPACT);
|
||||||
jwObj_object(&jwc, "data");
|
jwObj_object(&jwc, "data");
|
||||||
time_t now;
|
time_t now;
|
||||||
time(&now);
|
time(&now);
|
||||||
|
|
@ -247,7 +251,7 @@ mqtt_app_err_t PublicTestMQTT(int idx)
|
||||||
jwEnd(&jwc); //close payload
|
jwEnd(&jwc); //close payload
|
||||||
jwEnd(&jwc); //close data
|
jwEnd(&jwc); //close data
|
||||||
//calculate sha from 'data' object
|
//calculate sha from 'data' object
|
||||||
char *datap = strstr(JSONMess, "\"data\":");
|
char *datap = strstr(data, "\"data\":");
|
||||||
if (datap)
|
if (datap)
|
||||||
{
|
{
|
||||||
datap += sizeof("\"data\":") - 1;
|
datap += sizeof("\"data\":") - 1;
|
||||||
|
|
@ -261,13 +265,15 @@ mqtt_app_err_t PublicTestMQTT(int idx)
|
||||||
#endif
|
#endif
|
||||||
jwObj_string(&jwc, "signature", (char*) sha_print);
|
jwObj_string(&jwc, "signature", (char*) sha_print);
|
||||||
}
|
}
|
||||||
else
|
else{
|
||||||
return ESP_ERR_NOT_FOUND;
|
free(data);
|
||||||
|
return ESP_ERR_NOT_FOUND;}
|
||||||
|
|
||||||
jwClose(&jwc);
|
jwClose(&jwc);
|
||||||
mqtt_app_err_t merr = API_OK;
|
mqtt_app_err_t merr = API_OK;
|
||||||
if (SysServiceMQTTSend(JSONMess, strlen(JSONMess), idx) != ESP_OK)
|
if (SysServiceMQTTSend(data, strlen(data), idx) != ESP_OK)
|
||||||
merr = API_INTERNAL_ERR;
|
merr = API_INTERNAL_ERR;
|
||||||
|
free(data);
|
||||||
return merr;
|
return merr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -319,8 +325,14 @@ msg_id = esp_mqtt_client_subscribe(client, (char*) topic, 0);
|
||||||
#endif
|
#endif
|
||||||
if (++MQTTReconnectCounter > MQTT_RECONNECT_CHANGE_ADAPTER)
|
if (++MQTTReconnectCounter > MQTT_RECONNECT_CHANGE_ADAPTER)
|
||||||
{
|
{
|
||||||
|
#if CONFIG_WEBGUIAPP_GPRS_ENABLE
|
||||||
|
char interface[3];
|
||||||
|
GetDefaultNetIFName(interface);
|
||||||
|
if(!strcmp((const char*)interface , "pp")) //Cold reboot modem on can't connect to ppp
|
||||||
|
PPPConnReset();
|
||||||
|
#endif
|
||||||
MQTTReconnectCounter = 0;
|
MQTTReconnectCounter = 0;
|
||||||
NextDefaultNetIF();
|
NextDefaultNetIF();
|
||||||
}
|
}
|
||||||
mqtt[idx].is_connected = false;
|
mqtt[idx].is_connected = false;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,11 @@
|
||||||
// UART configuration
|
// UART configuration
|
||||||
#define UART_PORT_NUM UART_NUM_2
|
#define UART_PORT_NUM UART_NUM_2
|
||||||
#define UART_BAUD_RATE 115200
|
#define UART_BAUD_RATE 115200
|
||||||
#define UART_RX_PIN 18
|
#define UART_RX_PIN 2
|
||||||
#define UART_TX_PIN 17
|
#define UART_TX_PIN 1
|
||||||
#define UART_BUF_SIZE 12000
|
#define UART_BUF_SIZE 4096
|
||||||
|
|
||||||
|
#ifdef CONFIG_WEBGUIAPP_PPPOS_ENABLE
|
||||||
|
|
||||||
// PPP configuration
|
// PPP configuration
|
||||||
static ppp_pcb *ppp;
|
static ppp_pcb *ppp;
|
||||||
|
|
@ -98,3 +100,4 @@ void InitPPPSerial()
|
||||||
|
|
||||||
xTaskCreate(pppos_task, "pppos_task", 4096 , (void *)0, 7, NULL);
|
xTaskCreate(pppos_task, "pppos_task", 4096 , (void *)0, 7, NULL);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@
|
||||||
|
|
||||||
#define UART_TX_QUEUE_SIZE (5)
|
#define UART_TX_QUEUE_SIZE (5)
|
||||||
#define UART_RX_QUEUE_SIZE (5)
|
#define UART_RX_QUEUE_SIZE (5)
|
||||||
#define UART_DEBUG_MODE 1
|
#define UART_DEBUG_MODE 0
|
||||||
|
|
||||||
#if CONFIG_WEBGUIAPP_UART_TRANSPORT_ENABLE
|
#if CONFIG_WEBGUIAPP_UART_TRANSPORT_ENABLE
|
||||||
|
|
||||||
|
|
@ -64,7 +64,6 @@ static char rxbuf[CONFIG_WEBGUIAPP_UART_BUF_SIZE];
|
||||||
|
|
||||||
esp_err_t TransmitSerialPort(char *data, int ln)
|
esp_err_t TransmitSerialPort(char *data, int ln)
|
||||||
{
|
{
|
||||||
return ESP_OK;
|
|
||||||
UART_DATA_SEND_STRUCT DSS;
|
UART_DATA_SEND_STRUCT DSS;
|
||||||
char *buf = malloc(ln);
|
char *buf = malloc(ln);
|
||||||
if (!buf)
|
if (!buf)
|
||||||
|
|
@ -93,7 +92,6 @@ static void ReceiveHandlerAPI()
|
||||||
M.outputDataBuffer = respbuf;
|
M.outputDataBuffer = respbuf;
|
||||||
M.outputDataLength = EXPECTED_MAX_DATA_SIZE;
|
M.outputDataLength = EXPECTED_MAX_DATA_SIZE;
|
||||||
ServiceDataHandler(&M);
|
ServiceDataHandler(&M);
|
||||||
|
|
||||||
if (M.outputDataBuffer[0] != 0x00 && M.outputDataLength > 0)
|
if (M.outputDataBuffer[0] != 0x00 && M.outputDataLength > 0)
|
||||||
{
|
{
|
||||||
TransmitSerialPort(M.outputDataBuffer, MIN(EXPECTED_MAX_DATA_SIZE, strlen(M.outputDataBuffer)));
|
TransmitSerialPort(M.outputDataBuffer, MIN(EXPECTED_MAX_DATA_SIZE, strlen(M.outputDataBuffer)));
|
||||||
|
|
|
||||||
|
|
@ -179,8 +179,11 @@ esp_err_t WebGuiAppInit(void)
|
||||||
#if CONFIG_WEBGUIAPP_UART_TRANSPORT_ENABLE
|
#if CONFIG_WEBGUIAPP_UART_TRANSPORT_ENABLE
|
||||||
InitSerialPort();
|
InitSerialPort();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_WEBGUIAPP_PPPOS_ENABLE
|
||||||
InitPPPSerial();
|
InitPPPSerial();
|
||||||
|
#endif
|
||||||
|
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user