Compare commits
4 Commits
ea5bad2c1d
...
2a6f6233af
| Author | SHA1 | Date | |
|---|---|---|---|
| 2a6f6233af | |||
| b52dcdc5d8 | |||
| d254ff5c46 | |||
| a162ef8091 |
6
Kconfig
6
Kconfig
|
|
@ -812,6 +812,12 @@ menu "WebGUIApp"
|
|||
endif
|
||||
endmenu
|
||||
|
||||
menu "PPPoS configuration"
|
||||
config WEBGUIAPP_PPPOS_ENABLE
|
||||
bool "Enabled PPPoS transport"
|
||||
default n
|
||||
endmenu
|
||||
|
||||
menu "Serial port configuration"
|
||||
|
||||
config WEBGUIAPP_UART_TRANSPORT_ENABLE
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ void EthStart(void);
|
|||
|
||||
void WiFiTransportTask(void *prm);
|
||||
|
||||
void PPPConnReset (void);
|
||||
|
||||
void PPPModemColdStart(void);
|
||||
void PPPModemSoftRestart(void);
|
||||
|
|
@ -96,6 +97,7 @@ esp_netif_t* GetSTANetifAdapter(void);
|
|||
esp_netif_t* GetAPNetifAdapter(void);
|
||||
esp_netif_t* GetETHNetifAdapter(void);
|
||||
|
||||
|
||||
bool isWIFIConnected(void);
|
||||
bool isETHConnected(void);
|
||||
bool isPPPConnected(void);
|
||||
|
|
|
|||
|
|
@ -20,8 +20,10 @@
|
|||
*/
|
||||
|
||||
#include "CommandProcSys.h"
|
||||
#include "NetTransport.h"
|
||||
#include "webguiapp.h"
|
||||
|
||||
|
||||
#define TAG "COMMAND_PROC_SYS"
|
||||
|
||||
//#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)
|
||||
{
|
||||
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;
|
||||
|
|
@ -65,9 +75,9 @@ const obj_struct_t com_obj_arr[] = {
|
|||
},
|
||||
{
|
||||
.index = 0,
|
||||
.object_name = "SYSTEM1",
|
||||
.object_name = "MODEM",
|
||||
.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,
|
||||
|
|
|
|||
|
|
@ -62,13 +62,14 @@ void RegGSMReset(void (*gsm_rst)(uint8_t level)) { gsm_reset = gsm_rst; }
|
|||
esp_netif_t *GetPPPNetifAdapter(void) {
|
||||
if (isPPPConn)
|
||||
return ppp_netif;
|
||||
else
|
||||
return NULL;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
MODEM_INFO *GetPPPModemInfo(void) { return &mod_info; }
|
||||
|
||||
bool isPPPConnected(void) { return isPPPConn; }
|
||||
void PPPConnReset(void) { isPPPConn = false; }
|
||||
|
||||
#if CONFIG_WEBGUIAPP_GPRS_ENABLE
|
||||
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");
|
||||
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;
|
||||
vTaskDelete(NULL);
|
||||
|
|
@ -281,7 +283,7 @@ modem_init_fail:
|
|||
void PPPModemColdStart(void) {
|
||||
ResetType = 0;
|
||||
xTaskCreatePinnedToCore(GSMInitTask, "GSMInitTask", 1024 * 6, &ResetType, 3,
|
||||
&initTaskhandle, 1);
|
||||
&initTaskhandle, 1);
|
||||
ESP_LOGI(TAG, "Start GSM cold initialization task");
|
||||
}
|
||||
|
||||
|
|
@ -303,7 +305,8 @@ static void GSMRunTask(void *pvParameter) {
|
|||
}
|
||||
|
||||
void PPPModemStart(void) {
|
||||
xTaskCreatePinnedToCore(GSMRunTask, "GSMRunTask", 1024 * 4, &ResetType, 3, NULL, 1);
|
||||
xTaskCreatePinnedToCore(GSMRunTask, "GSMRunTask", 1024 * 4, &ResetType, 3,
|
||||
NULL, 1);
|
||||
}
|
||||
|
||||
int PPPModemGetRSSI(void) {
|
||||
|
|
|
|||
30
src/MQTT.c
30
src/MQTT.c
|
|
@ -20,6 +20,8 @@
|
|||
*/
|
||||
#include <SysConfiguration.h>
|
||||
#include <SystemApplication.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "esp_log.h"
|
||||
#include "Helpers.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
|
||||
static char resp[256];
|
||||
static char JSONMess[1024];
|
||||
#define MAX_MQTT_PUBLICTEST_MESSAGE 1024
|
||||
mqtt_app_err_t PublicTestMQTT(int idx)
|
||||
{
|
||||
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;
|
||||
jwOpen(&jwc, JSONMess, 1024 - 64, JW_OBJECT, JW_COMPACT);
|
||||
jwOpen(&jwc, data, 1024 - 64, JW_OBJECT, JW_COMPACT);
|
||||
jwObj_object(&jwc, "data");
|
||||
time_t now;
|
||||
time(&now);
|
||||
|
|
@ -247,7 +251,7 @@ mqtt_app_err_t PublicTestMQTT(int idx)
|
|||
jwEnd(&jwc); //close payload
|
||||
jwEnd(&jwc); //close data
|
||||
//calculate sha from 'data' object
|
||||
char *datap = strstr(JSONMess, "\"data\":");
|
||||
char *datap = strstr(data, "\"data\":");
|
||||
if (datap)
|
||||
{
|
||||
datap += sizeof("\"data\":") - 1;
|
||||
|
|
@ -261,13 +265,15 @@ mqtt_app_err_t PublicTestMQTT(int idx)
|
|||
#endif
|
||||
jwObj_string(&jwc, "signature", (char*) sha_print);
|
||||
}
|
||||
else
|
||||
return ESP_ERR_NOT_FOUND;
|
||||
else{
|
||||
free(data);
|
||||
return ESP_ERR_NOT_FOUND;}
|
||||
|
||||
jwClose(&jwc);
|
||||
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;
|
||||
free(data);
|
||||
return merr;
|
||||
}
|
||||
|
||||
|
|
@ -319,8 +325,14 @@ msg_id = esp_mqtt_client_subscribe(client, (char*) topic, 0);
|
|||
#endif
|
||||
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;
|
||||
NextDefaultNetIF();
|
||||
NextDefaultNetIF();
|
||||
}
|
||||
mqtt[idx].is_connected = false;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -23,9 +23,11 @@
|
|||
// UART configuration
|
||||
#define UART_PORT_NUM UART_NUM_2
|
||||
#define UART_BAUD_RATE 115200
|
||||
#define UART_RX_PIN 18
|
||||
#define UART_TX_PIN 17
|
||||
#define UART_BUF_SIZE 12000
|
||||
#define UART_RX_PIN 2
|
||||
#define UART_TX_PIN 1
|
||||
#define UART_BUF_SIZE 4096
|
||||
|
||||
#ifdef CONFIG_WEBGUIAPP_PPPOS_ENABLE
|
||||
|
||||
// PPP configuration
|
||||
static ppp_pcb *ppp;
|
||||
|
|
@ -98,3 +100,4 @@ void InitPPPSerial()
|
|||
|
||||
xTaskCreate(pppos_task, "pppos_task", 4096 , (void *)0, 7, NULL);
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@
|
|||
|
||||
#define UART_TX_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
|
||||
|
||||
|
|
@ -64,7 +64,6 @@ static char rxbuf[CONFIG_WEBGUIAPP_UART_BUF_SIZE];
|
|||
|
||||
esp_err_t TransmitSerialPort(char *data, int ln)
|
||||
{
|
||||
return ESP_OK;
|
||||
UART_DATA_SEND_STRUCT DSS;
|
||||
char *buf = malloc(ln);
|
||||
if (!buf)
|
||||
|
|
@ -93,7 +92,6 @@ static void ReceiveHandlerAPI()
|
|||
M.outputDataBuffer = respbuf;
|
||||
M.outputDataLength = EXPECTED_MAX_DATA_SIZE;
|
||||
ServiceDataHandler(&M);
|
||||
|
||||
if (M.outputDataBuffer[0] != 0x00 && M.outputDataLength > 0)
|
||||
{
|
||||
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
|
||||
InitSerialPort();
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef CONFIG_WEBGUIAPP_PPPOS_ENABLE
|
||||
InitPPPSerial();
|
||||
#endif
|
||||
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user