//#include "stm32f4xx_hal.h"
|
#include "stdlib.h"
|
#include "string.h"
|
//#include "AppConfig.h"
|
#include "Shell.h"
|
|
#include "HIDO_Shell.h"
|
#include "HIDO_Util.h"
|
#include "HIDO_Debug.h"
|
//#include "GPIO.h"
|
#include "DBG.h"
|
//#include "RTC.h"
|
//#include "Reboot.h"
|
#include "HIDO_ATLite.h"
|
#include "Module.h"
|
#include "HIDO_Log.h"
|
//#include "Log.h"
|
#include "Socket.h"
|
#include "Uart.h"
|
#include "Module.h"
|
//#include "Flash.h"
|
//#include "SPIFlash.h"
|
//#include "AppConfig.h"
|
//#include "OTA.h"
|
#include <global_param.h>
|
|
extern uint16_t dev_id;
|
static HIDO_INT32 Shell_Test(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_Sleep(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_Reboot(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_RTCGet(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_RTCSet(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_RTCAlarm(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
|
static HIDO_INT32 Shell_Info(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
|
|
static HIDO_INT32 Shell_ATCmd(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_DebugOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_DebugOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
|
static HIDO_INT32 Shell_CloseWireless(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_OpenWireless(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_PowerOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_PowerOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_Update(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
|
static HIDO_INT32 Shell_TCPCreate(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_TCPConnect(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_TCPSend(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_TCPClose(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
|
static HIDO_INT32 Shell_SetRTCMMode(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_DBGMode(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_DEVID(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_SetServerInfo(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_SetRTCMTCPInfo(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_GPSBaudRate(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_SetDataRate(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_OTA(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_LogUpload(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
|
|
static HIDO_INT32 Shell_Log(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_LogPrint(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_LogClean(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_SetQXWZ(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_SetNtrip(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_SetUWBEnable(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
|
static const HIDO_ShellCmdStruct l_astShellCmdList[] =
|
{
|
{ "test", Shell_Test },
|
{ "reboot", Shell_Reboot },
|
{ "rtc_set", Shell_RTCSet },
|
{ "rtc_set_alarm", Shell_RTCAlarm },
|
{ "rtc_get", Shell_RTCGet },
|
|
{ "sleep", Shell_Sleep },
|
{ "info", Shell_Info },
|
|
|
{ "at_cmd", Shell_ATCmd },
|
|
{ "debug_on", Shell_DebugOn },
|
{ "debug_off", Shell_DebugOff },
|
|
{ "close_wireless", Shell_CloseWireless },
|
{ "open_wireless", Shell_OpenWireless },
|
{ "4g_poweron", Shell_PowerOn },
|
{ "4g_poweroff", Shell_PowerOff },
|
{ "update", Shell_Update },
|
|
{ "tcp_create", Shell_TCPCreate },
|
{ "tcp_connect", Shell_TCPConnect },
|
{ "tcp_send", Shell_TCPSend },
|
{ "tcp_close", Shell_TCPClose },
|
|
{ "dbg_mode", Shell_DBGMode },
|
{ "gps_baud_rate", Shell_GPSBaudRate },
|
{ "set_datarate", Shell_SetDataRate },
|
{ "device_id", Shell_DEVID },
|
{ "server_info", Shell_SetServerInfo },
|
{ "set_rtcm", Shell_SetRTCMTCPInfo },
|
{ "set_qxwz", Shell_SetQXWZ },
|
{ "set_rtcmmode", Shell_SetRTCMMode },
|
{ "set_uwbenable", Shell_SetUWBEnable },
|
{ "set_ntrip", Shell_SetNtrip },
|
|
{ "ota", Shell_OTA },
|
{ "log_upload", Shell_LogUpload },
|
|
|
{ "log", Shell_Log },
|
{ "log_clean", Shell_LogClean },
|
{ "log_print", Shell_LogPrint },
|
};
|
static HIDO_INT32 Shell_SetUWBEnable(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
HIDO_UINT8 au8IP[2];
|
|
if(_i32Argc < 2)
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
|
return HIDO_ERR;
|
}
|
|
/* IP=192.168.1.1 */
|
HIDO_UtilIPStringToByteArrary(_ppcArgv[1], au8IP);
|
/* IP±ä»¯ */
|
|
if( g_com_map[UWBENABLE_INDEX] != HIDO_UtilStrToInt(_ppcArgv[1]))
|
{
|
g_com_map[UWBENABLE_INDEX] = HIDO_UtilStrToInt(_ppcArgv[1]);
|
}
|
|
save_com_map_to_flash();
|
|
HIDO_ShellPrintf("OK\r\n");
|
g_com_map[CNT_RESTART] = 1;
|
return HIDO_OK;
|
}
|
static HIDO_INT32 Shell_SetRTCMMode(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
HIDO_UINT8 au8IP[2];
|
|
if(_i32Argc < 2)
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
|
return HIDO_ERR;
|
}
|
|
/* IP=192.168.1.1 */
|
HIDO_UtilIPStringToByteArrary(_ppcArgv[1], au8IP);
|
/* IP±ä»¯ */
|
|
if( g_com_map[RTCMMODE_INDEX] != HIDO_UtilStrToInt(_ppcArgv[1]))
|
{
|
g_com_map[RTCMMODE_INDEX] = HIDO_UtilStrToInt(_ppcArgv[1]);
|
}
|
|
save_com_map_to_flash();
|
|
HIDO_ShellPrintf("OK\r\n");
|
g_com_map[CNT_RESTART] = 1;
|
return HIDO_OK;
|
}
|
static HIDO_INT32 Shell_Test(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
//EC20Driver_Reset();
|
|
// TTS_Play("²âÊÔ", 4);
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_Sleep(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
//Power_Sleep();
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_Reboot(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
// Reboot(0);
|
NVIC_SystemReset();
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_RTCSet(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if (_i32Argc != 7)
|
{
|
HIDO_ShellPrintf("usage: rtc_set yyyy mm dd hh mm ss\r\n");
|
return HIDO_ERR;
|
}
|
#if 0
|
ST_RTCDateTime stDateTime;
|
|
stDateTime.m_u16Year = atoi(_ppcArgv[1]);
|
stDateTime.m_u8Month = atoi(_ppcArgv[2]);
|
stDateTime.m_u8Day = atoi(_ppcArgv[3]);
|
stDateTime.m_u8Hour = atoi(_ppcArgv[4]);
|
stDateTime.m_u8Min = atoi(_ppcArgv[5]);
|
stDateTime.m_u8Sec = atoi(_ppcArgv[6]);
|
|
if(RTC_SetDateTime(&stDateTime) == HIDO_OK)
|
{
|
HIDO_ShellPrintf("OK\r\n");
|
}
|
else
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
}
|
#endif
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_RTCAlarm(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if (_i32Argc != 2)
|
{
|
HIDO_ShellPrintf("usage: rtc_set_alarm sec\r\n");
|
return HIDO_ERR;
|
}
|
|
//RTC_SetAlarm(atoi(_ppcArgv[1]));
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_RTCGet(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
// ST_RTCDateTime stDateTime;
|
//#if 0
|
// if(RTC_GetDateTime(&stDateTime) == HIDO_OK)
|
// {
|
// HIDO_ShellPrintf("%04u-%02u-%02u %02u:%02u:%02u\r\n", stDateTime.m_u16Year, stDateTime.m_u8Month,
|
// stDateTime.m_u8Day, stDateTime.m_u8Hour, stDateTime.m_u8Min, stDateTime.m_u8Sec);
|
|
// HIDO_ShellPrintf("OK\r\n");
|
// }
|
// else
|
// {
|
// HIDO_ShellPrintf("ERROR\r\n");
|
// }
|
//#endif
|
// return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_DebugOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if (_i32Argc < 2)
|
{
|
HIDO_ShellPrintf("debug_on flag\r\n");
|
|
return HIDO_ERR;
|
}
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_DebugOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if (_i32Argc < 2)
|
{
|
HIDO_ShellPrintf("debug_off flag\r\n");
|
|
return HIDO_ERR;
|
}
|
|
return HIDO_OK;
|
}
|
#define APP_CONFIG_VERSION "V2021051000"
|
static HIDO_INT32 Shell_Info(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
HIDO_ShellPrintf("Version: %s\r\n", APP_CONFIG_VERSION);
|
HIDO_ShellPrintf("IMEI: %s\r\n", Module_GetIMEI());
|
HIDO_ShellPrintf("CCID: %s\r\n", Module_GetCCID());
|
HIDO_ShellPrintf("IMSI: %s\r\n", Module_GetIMSI());
|
|
return HIDO_OK;
|
}
|
|
//#ifdef _RTK_MODE_
|
static HIDO_INT32 Shell_CloseWireless(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
Module_PowerOff(MODULE_GSM);
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_OpenWireless(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
Module_PowerOn(MODULE_GSM);
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_PowerOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
Module_PowerOn(MODULE_MAIN);
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_PowerOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
Module_PowerOff(MODULE_MAIN);
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_Update(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
// uint16_t tmp = 0xAAAA,result;
|
// HIDO_ShellPrintf("update OK\r\n");
|
// SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP,2, SPI_FLASH_SECTOR_ERASE_MODE_4K);
|
// SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, (HIDO_UINT8*)&tmp, sizeof(tmp));
|
// g_com_map[CNT_RESTART] = 1;
|
// return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_ATCmd(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if(_i32Argc != 2)
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
|
return HIDO_OK;
|
}
|
|
Module_RunATCmd(_ppcArgv[1]);
|
|
return HIDO_OK;
|
}
|
|
static HIDO_VOID Shell_SocketEventProc(HIDO_INT32 _i32SockID, E_SocketEvent _eEvent, HIDO_VOID *_pData)
|
{
|
HIDO_Debug("Event:%u\r\n", _eEvent);
|
}
|
|
static HIDO_INT32 Shell_TCPCreate(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
HIDO_INT32 i32NewSockID = 0;
|
|
if(Socket_Create(&i32NewSockID, SOCKET_TYPE_TCP, Shell_SocketEventProc, HIDO_NULL) == HIDO_OK)
|
{
|
HIDO_ShellPrintf("SockID:%u\r\n", i32NewSockID);
|
HIDO_ShellPrintf("OK\r\n");
|
}
|
else
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
}
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_TCPConnect(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if(_i32Argc != 4)
|
{
|
HIDO_ShellPrintf("Arg ERROR\r\n");
|
}
|
|
HIDO_INT32 i32SockID = atoi(_ppcArgv[1]);
|
HIDO_CHAR *pcRemoteAddr = _ppcArgv[2];
|
HIDO_UINT16 u16RemotePort = atoi(_ppcArgv[3]);
|
|
if(Socket_Connect(i32SockID, pcRemoteAddr, u16RemotePort) == HIDO_OK)
|
{
|
HIDO_ShellPrintf("OK\r\n");
|
}
|
else
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
}
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_TCPSend(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if(_i32Argc != 3)
|
{
|
HIDO_ShellPrintf("Arg ERROR\r\n");
|
}
|
|
HIDO_INT32 i32SockID = atoi(_ppcArgv[1]);
|
HIDO_CHAR *pcData = _ppcArgv[2];
|
|
if(Socket_Send(i32SockID, (HIDO_UINT8 *)pcData, strlen(pcData)) == HIDO_OK)
|
{
|
HIDO_ShellPrintf("OK\r\n");
|
}
|
else
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
}
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_TCPClose(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if(_i32Argc != 2)
|
{
|
HIDO_ShellPrintf("Arg ERROR\r\n");
|
}
|
|
HIDO_INT32 i32SockID = atoi(_ppcArgv[1]);
|
|
if(Socket_Close(i32SockID) == HIDO_OK)
|
{
|
HIDO_ShellPrintf("OK\r\n");
|
}
|
else
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
}
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_DEVID(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
uint32_t temp2,hex;
|
temp2 = atoi(_ppcArgv[1]);
|
|
hex = (temp2/1000)*4096+((temp2/100)%10)*256+((temp2/10)%10)*16 +((temp2)%10);
|
g_com_map[DEV_ID] = hex;
|
dev_id = g_com_map[DEV_ID];
|
save_com_map_to_flash();
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_SetServerInfo(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
HIDO_UINT8 au8IP[4];
|
|
if(_i32Argc < 3)
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
|
return HIDO_ERR;
|
}
|
|
/* IP=192.168.1.1 */
|
HIDO_UtilIPStringToByteArrary(_ppcArgv[1], au8IP);
|
/* IP±ä»¯ */
|
if((au8IP[0] != g_com_map[IP_0]) || (au8IP[1] != g_com_map[IP_1])
|
|| (au8IP[2] != g_com_map[IP_2]) || (au8IP[3] != g_com_map[IP_3]))
|
{
|
g_com_map[IP_0] = au8IP[0];
|
g_com_map[IP_1] = au8IP[1];
|
g_com_map[IP_2] = au8IP[2];
|
g_com_map[IP_3] = au8IP[3];
|
}
|
|
/* ¶Ë¿Ú=0-65535 */
|
if( g_com_map[PORT] != HIDO_UtilStrToInt(_ppcArgv[2]))
|
{
|
g_com_map[PORT] = HIDO_UtilStrToInt(_ppcArgv[2]);
|
}
|
|
save_com_map_to_flash();
|
|
g_com_map[CNT_RESTART] = 1;
|
|
HIDO_ShellPrintf("OK\r\n");
|
return HIDO_OK;
|
}
|
static HIDO_INT32 Shell_SetQXWZ(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
HIDO_UINT8 au8IP[4];
|
|
if(_i32Argc < 5)
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
|
return HIDO_ERR;
|
}
|
|
|
snprintf((char *)&g_com_map[QXWZ_APPKEY_INDEX], 32, "%s", _ppcArgv[1]);
|
snprintf((char *)&g_com_map[QXWZ_APPSECRET_INDEX], 32, "%s", _ppcArgv[2]);
|
snprintf((char *)&g_com_map[QXWZ_DEVTYPE_INDEX], 32, "%s", _ppcArgv[3]);
|
snprintf((char *)&g_com_map[QXWZ_DEVID_INDEX], 32, "%s", _ppcArgv[4]);
|
|
save_com_map_to_flash();
|
|
HIDO_ShellPrintf("OK\r\n");
|
g_com_map[CNT_RESTART] = 1;
|
return HIDO_OK;
|
}
|
static HIDO_INT32 Shell_SetNtrip(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
HIDO_UINT8 au8IP[4];
|
|
if(_i32Argc < 6)
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
|
return HIDO_ERR;
|
}
|
|
|
snprintf((char *)&g_com_map[NTRIP_HOST_INDEX], 32, "%s", _ppcArgv[1]);
|
g_com_map[NTRIP_PORT_INDEX] = HIDO_UtilStrToInt(_ppcArgv[2]);
|
snprintf((char *)&g_com_map[NTRIP_USERNANME_INDEX], 32, "%s", _ppcArgv[3]);
|
snprintf((char *)&g_com_map[NTRIP_PASSWORD_INDEX], 32, "%s", _ppcArgv[4]);
|
snprintf((char *)&g_com_map[NTRIP_SOURCENAME_INDEX], 32, "%s", _ppcArgv[5]);
|
|
save_com_map_to_flash();
|
|
HIDO_ShellPrintf("OK\r\n");
|
g_com_map[CNT_RESTART] = 1;
|
return HIDO_OK;
|
}
|
static HIDO_INT32 Shell_SetRTCMTCPInfo(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
HIDO_UINT8 au8IP[4];
|
|
if(_i32Argc < 3)
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
|
return HIDO_ERR;
|
}
|
|
/* IP=192.168.1.1 */
|
HIDO_UtilIPStringToByteArrary(_ppcArgv[1], au8IP);
|
/* IP±ä»¯ */
|
if((au8IP[0] != g_com_map[TCP_IP_0]) || (au8IP[1] != g_com_map[TCP_IP_1])
|
|| (au8IP[2] != g_com_map[TCP_IP_2]) || (au8IP[3] != g_com_map[TCP_IP_3]))
|
{
|
g_com_map[TCP_IP_0] = au8IP[0];
|
g_com_map[TCP_IP_1] = au8IP[1];
|
g_com_map[TCP_IP_2] = au8IP[2];
|
g_com_map[TCP_IP_3] = au8IP[3];
|
}
|
|
/* ¶Ë¿Ú=0-65535 */
|
if( g_com_map[TCP_PORT] != HIDO_UtilStrToInt(_ppcArgv[2]))
|
{
|
g_com_map[TCP_PORT] = HIDO_UtilStrToInt(_ppcArgv[2]);
|
}
|
|
save_com_map_to_flash();
|
|
HIDO_ShellPrintf("OK\r\n");
|
g_com_map[CNT_RESTART] = 1;
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_DBGMode(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if(_i32Argc != 2)
|
{
|
HIDO_ShellPrintf("Arg ERROR\r\n");
|
}
|
|
HIDO_INT32 i32Mode = atoi(_ppcArgv[1]);
|
|
if(i32Mode == 0)
|
{
|
DBG_SetMode(DBG_MODE_SHELL);
|
HIDO_ShellPrintf("OK\r\n");
|
}
|
else if(i32Mode == 1)
|
{
|
HIDO_ShellPrintf("OK\r\n");
|
DBG_SetMode(DBG_MODE_GPS);
|
}else if(i32Mode == 2)
|
{
|
HIDO_ShellPrintf("OK\r\n");
|
DBG_SetMode(DBG_MODE_CFG);
|
}
|
else
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
}
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_GPSBaudRate(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if (_i32Argc != 2)
|
{
|
HIDO_ShellPrintf("Arg ERROR\r\n");
|
}
|
|
HIDO_INT32 i32BaudRate = atoi(_ppcArgv[1]);
|
g_com_map[GPSBAUDRATE1_INDEX] = i32BaudRate>>16;
|
g_com_map[GPSBAUDRATE2_INDEX] = i32BaudRate;
|
save_com_map_to_flash();
|
Uart_ReConfigBaudRate(UART_ID_GPS, i32BaudRate);
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
static HIDO_INT32 Shell_SetDataRate(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if (_i32Argc != 3)
|
{
|
HIDO_ShellPrintf("Arg ERROR\r\n");
|
}
|
|
HIDO_INT32 datarate1 = atoi(_ppcArgv[1]);
|
HIDO_INT32 datarate2 = atoi(_ppcArgv[2]);
|
if(datarate1<=20&&datarate1>0&&datarate2<=50&&datarate1>0)
|
{
|
g_com_map[GPS_HZ] = datarate1;
|
g_com_map[COM_INTERVAL] = 1000/datarate2;
|
|
save_com_map_to_flash();
|
|
HIDO_ShellPrintf("OK\r\n");
|
g_com_map[CNT_RESTART] = 1;
|
}else{
|
HIDO_ShellPrintf("Arg ERROR\r\n");
|
}
|
return HIDO_OK;
|
}
|
static HIDO_INT32 Shell_OTA(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
// if(_i32Argc != 2)
|
// {
|
// HIDO_ShellPrintf("usage: ota url\r\n");
|
// return HIDO_ERR;
|
// }
|
//
|
// /* ÖØÆô½øÈëOTAģʽÉý¼¶ */
|
// uint16_t tmp = 0xCCCC;
|
//
|
// HIDO_Debug("goto ota application\r\n");
|
// SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, 2, SPI_FLASH_SECTOR_ERASE_MODE_4K);
|
// SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAPFLAG_MAP, (HIDO_UINT8*)&tmp, sizeof(tmp));
|
// SPIFlash_Erase(SPI_FLASH_ID_0, APP_CONFIG_IAP_PARAM_MAP, 256, SPI_FLASH_SECTOR_ERASE_MODE_4K);
|
// SPIFlash_Write(SPI_FLASH_ID_0, APP_CONFIG_IAP_PARAM_MAP, (HIDO_UINT8*)_ppcArgv[1], strlen(_ppcArgv[1]) + 1);
|
|
// delay_ms(10);
|
//// Reboot(0);
|
// NVIC_SystemReset();
|
// return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_LogUpload(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
//Log_Upload("http://39.106.210.13:8080/hfs/");
|
return HIDO_OK;
|
}
|
|
|
static HIDO_INT32 Shell_Log(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if(_i32Argc != 2)
|
{
|
HIDO_ShellPrintf("usage: log string\r\n");
|
return HIDO_ERR;
|
}
|
|
// HIDO_Log(HIDO_LOG_LEVEL_DEBUG, "%s\r\n", _ppcArgv[1]);
|
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_LogPrint(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
HIDO_INT32 i32Result = HIDO_OK;
|
|
if(_i32Argc != 3)
|
{
|
HIDO_ShellPrintf("usage: log_print asc[0-1] cnt\r\n");
|
return HIDO_ERR;
|
}
|
#if 0
|
if(HIDO_UtilStrToInt(_ppcArgv[1]) == 0)
|
{
|
i32Result = Log_Print(HIDO_FALSE, HIDO_UtilStrToInt(_ppcArgv[2]));
|
}
|
else
|
{
|
i32Result = Log_Print( HIDO_TRUE, HIDO_UtilStrToInt(_ppcArgv[2]));
|
}
|
|
if(i32Result != HIDO_OK)
|
{
|
HIDO_ShellPrintf("Print Error\r\n");
|
}
|
else
|
{
|
HIDO_ShellPrintf("Print Over\r\n");
|
}
|
#endif
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_LogClean(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
#if 0
|
Log_Clean();
|
#endif
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
HIDO_INT32 Shell_Init(void)
|
{
|
HIDO_ShellCmdRegister(&l_astShellCmdList[0], HIDO_ARRARY_COUNT(l_astShellCmdList));
|
|
return HIDO_OK;
|
}
|