#include "stm32l0xx_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 "Param.h"
|
#include "HIDO_ATLite.h"
|
#include "Lock.h"
|
//#include "Log.h"
|
#include "HIDO_Log.h"
|
#include "Battery.h"
|
#include "gps.h"
|
#include "power.h"
|
#include "beep.h"
|
#include "lora.h"
|
extern uint8_t bat_percent;
|
static HIDO_INT32 Shell_Test(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_Info(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_SetIP(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_SetWIFI(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_SetDevID(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_SetADC(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_SetContrast(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_GpsOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_GpsOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_BeepOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_BeepOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
static HIDO_INT32 Shell_Sleep(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv);
|
|
static const HIDO_ShellCmdStruct l_astShellCmdList[] =
|
{
|
{ "test", Shell_Test },
|
{ "reboot", Shell_Reboot },
|
|
{ "info", Shell_Info },
|
{ "debug_on", Shell_DebugOn },
|
{ "debug_off", Shell_DebugOff },
|
|
{ "rtc_get", Shell_RTCGet },
|
{ "rtc_set", Shell_RTCSet },
|
|
{ "set_adc", Shell_SetADC },
|
{ "set_ip", Shell_SetIP },
|
{ "set_dev_id", Shell_SetDevID },
|
|
//{ "set_dev", Shell_SetDev },
|
{ "set_wifi", Shell_SetWIFI },
|
{ "set_contrast", Shell_SetContrast },
|
|
{ "gps_on", Shell_GpsOn },
|
{ "gps_off", Shell_GpsOff },
|
|
{ "beep_on", Shell_BeepOn },
|
{ "beep_off", Shell_BeepOff },
|
|
{ "sleep", Shell_Sleep },
|
};
|
|
static HIDO_INT32 Shell_Test(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
Lora_Run();
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_Reboot(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
Reboot(0);
|
|
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;
|
}
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_RTCGet(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
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;
|
}
|
|
switch(atoi(_ppcArgv[1]))
|
{
|
case 0:
|
{
|
HIDO_ATLiteDebugOn();
|
break;
|
}
|
case 1:
|
{
|
//GPRS_DebugOn();
|
break;
|
}
|
}
|
|
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;
|
}
|
|
switch(atoi(_ppcArgv[1]))
|
{
|
case 0:
|
{
|
HIDO_ATLiteDebugOff();
|
break;
|
}
|
case 1:
|
{
|
//GPRS_DebugOff();
|
break;
|
}
|
}
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_SetIP(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if (_i32Argc < 3)
|
{
|
HIDO_ShellPrintf("set_ip [server_ip] [server_port]\r\n");
|
|
return HIDO_ERR;
|
}
|
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_SetWIFI(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if (_i32Argc < 3)
|
{
|
HIDO_ShellPrintf("set_wifi [ssid] [password] [ip]\r\n");
|
|
return HIDO_ERR;
|
}
|
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_SetDevID(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if (_i32Argc < 2)
|
{
|
HIDO_ShellPrintf("set_dev_id id\r\n");
|
|
return HIDO_ERR;
|
}
|
|
HIDO_UINT32 u32DevID = atoi(_ppcArgv[1]);
|
|
if(u32DevID == 0 || u32DevID > 8)
|
{
|
HIDO_ShellPrintf("id error\r\n");
|
|
return HIDO_ERR;
|
}
|
|
//Device_SetDeviceID(u32DevID);
|
//Device_SaveSettings();
|
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_SetADC(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if (_i32Argc < 6)
|
{
|
HIDO_ShellPrintf("set_adc normal_min normal_max error_min error_max error_cnt\r\n");
|
|
return HIDO_ERR;
|
}
|
|
//Device_GetSettings()->m_u8PumpErrorCnt = atoi(_ppcArgv[5]);
|
//Device_GetSettings()->m_fPumpNormalMin = atof(_ppcArgv[1]);
|
//Device_GetSettings()->m_fPumpNormalMax = atof(_ppcArgv[2]);
|
//Device_GetSettings()->m_fPumpErrorMin = atof(_ppcArgv[3]);
|
//Device_GetSettings()->m_fPumpErrorMax = atof(_ppcArgv[4]);
|
//Device_SaveSettings();
|
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_SetContrast(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
if (_i32Argc < 2)
|
{
|
HIDO_ShellPrintf("ERROR\r\n");
|
|
return HIDO_OK;
|
}
|
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_GpsOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
Power_GPS_LoraOn();
|
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_GpsOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
Power_GPS_LoraOff();
|
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_BeepOn(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
Beep_On();
|
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_Sleep(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
Power_Sleep();
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_BeepOff(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
Beep_Off();
|
|
HIDO_ShellPrintf("OK\r\n");
|
|
return HIDO_OK;
|
}
|
|
static HIDO_INT32 Shell_Info(HIDO_INT32 _i32Argc, HIDO_CHAR **_ppcArgv)
|
{
|
//HIDO_ShellPrintf("DeviceID: %u\r\n", Device_GetDeviceID());
|
HIDO_ShellPrintf("Version: %s\r\n", APP_CONFIG_VERSION);
|
HIDO_ShellPrintf("Battery: %u%% %.2fV\r\n", bat_percent, Battery_GetVoltage());
|
|
return HIDO_OK;
|
}
|
|
HIDO_INT32 Shell_Init(void)
|
{
|
HIDO_ShellCmdRegister(&l_astShellCmdList[0], HIDO_ARRARY_COUNT(l_astShellCmdList));
|
|
return HIDO_OK;
|
}
|