//#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 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(); // TODO ÔÝʱ²»Ö§³Ö²¨ÌØÂʵÄÅäÖà 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; }