nt9856x/rtos/code/application/source/cardv/SrcCode/System/SysInput_cmd.c
2023-03-28 15:07:53 +08:00

687 lines
18 KiB
C
Executable File

//global debug level: PRJ_DBG_LVL
#include "PrjInc.h"
#include "kwrap/cmdsys.h"
#include "kwrap/sxcmd.h"
#include <kwrap/stdio.h>
//local debug level: THIS_DBGLVL
#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
///////////////////////////////////////////////////////////////////////////////
#define __MODULE__ SysInCmd
#define __DBGLVL__ ((THIS_DBGLVL>=PRJ_DBG_LVL)?THIS_DBGLVL:PRJ_DBG_LVL)
#define __DBGFLT__ "*" //*=All, [mark]=CustomClass
#include <kwrap/debug.h>
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// key input
///////////////////////////////////////////////////////////////////////////////
static BOOL Cmd_key_power(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_XXX)
{
DBG_DUMP("Power Key\r\n");
//Ux_PostEvent(NVTEVT_KEY_POWER, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0);
return TRUE;
}
}
static BOOL Cmd_key_delete(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_DEL)
{
DBG_DUMP("Del Key\r\n");
Ux_PostEvent(NVTEVT_KEY_DEL, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_DEL, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
BOOL Cmd_key_menu(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_MENU)
{
DBG_DUMP("Menu Key\r\n");
Ux_PostEvent(NVTEVT_KEY_MENU, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_MENU, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_mode(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_MODE)
{
DBG_DUMP("Mode Key\r\n");
Ux_PostEvent(NVTEVT_KEY_MODE, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_MODE, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_playback(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_PLAYBACK)
{
DBG_DUMP("Playback Key\r\n");
Ux_PostEvent(NVTEVT_KEY_PLAYBACK, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_PLAYBACK, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_movie(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_PLAYBACK)
{
DBG_DUMP("Movie Key\r\n");
Ux_PostEvent(NVTEVT_KEY_MOVIE, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_MOVIE, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_up(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_UP)
{
DBG_DUMP("Up Key\r\n");
Ux_PostEvent(NVTEVT_KEY_UP, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_UP, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_down(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_DOWN)
{
DBG_DUMP("Down Key\r\n");
Ux_PostEvent(NVTEVT_KEY_DOWN, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_DOWN, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_right(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_RIGHT)
{
DBG_DUMP("Right Key\r\n");
Ux_PostEvent(NVTEVT_KEY_RIGHT, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_RIGHT, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_left(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_LEFT)
{
DBG_DUMP("Left Key\r\n");
Ux_PostEvent(NVTEVT_KEY_LEFT, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_LEFT, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_enter(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_ENTER)
{
DBG_DUMP("Enter Key\r\n");
Ux_PostEvent(NVTEVT_KEY_ENTER, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_ENTER, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_zoomin(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_ZOOMIN)
{
DBG_DUMP("Zoom In Key\r\n");
Ux_PostEvent(NVTEVT_KEY_ZOOMIN, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_ZOOMIN, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_zoomout(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_ZOOMOUT)
{
DBG_DUMP("Zoom Out Key\r\n");
Ux_PostEvent(NVTEVT_KEY_ZOOMOUT, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_ZOOMOUT, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_zoomin_release(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_ZOOMIN)
{
DBG_DUMP("Zoom In Key release\r\n");
Ux_PostEvent(NVTEVT_KEY_ZOOMIN, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_zoomout_release(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_ZOOMOUT)
{
DBG_DUMP("Zoom Out Key release\r\n");
Ux_PostEvent(NVTEVT_KEY_ZOOMOUT, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_zoomrelease(unsigned char argc, char **argv)
{
{
DBG_DUMP("zoom release Key\r\n");
Ux_PostEvent(NVTEVT_KEY_ZOOMRELEASE, 1, NVTEVT_KEY_ZOOMRELEASE);
return TRUE;
}
}
static BOOL Cmd_key_shutter1(unsigned char argc, char **argv)
{
//if(uiKeyTmpMsk & FLGkey_SHUTTER1)
{
DBG_DUMP("Shutter1 Key\r\n");
Ux_PostEvent(NVTEVT_KEY_SHUTTER1, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_SHUTTER1, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
#if (WIFI_AP_FUNC==ENABLE)
extern void FlowWiFiMovie_Stop2Idle(void);
#endif
extern void FlowPhoto_DoCapture(void);
static BOOL Cmd_key_shutter2(unsigned char argc, char **argv)
{
#if(WIFI_AP_FUNC==ENABLE)
if (System_GetState(SYS_STATE_CURRSUBMODE) == SYS_SUBMODE_WIFI) {
#if(IPCAM_FUNC!=ENABLE)
//FlowWiFiMovie_Stop2Idle();
#endif
}
#endif
//if(uiKeyTmpMsk & FLGkey_SHUTTER2)
{
DBG_DUMP("Shutter2 Key\r\n");
Ux_PostEvent(NVTEVT_KEY_SHUTTER2, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_SHUTTER2, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_shutter1rel(unsigned char argc, char **argv)
{
{
DBG_DUMP("Shutter1 release Key\r\n");
Ux_PostEvent(NVTEVT_KEY_SHUTTER1, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_shutter2rel(unsigned char argc, char **argv)
{
{
DBG_DUMP("Shutter2 release Key\r\n");
Ux_PostEvent(NVTEVT_KEY_SHUTTER2, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
static BOOL Cmd_key_custom1(unsigned char argc, char **argv)
{
{
DBG_DUMP("Custom1 Key\r\n");
Ux_PostEvent(NVTEVT_KEY_CUSTOM1, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
}
#if(WIFI_AP_FUNC==ENABLE)
#include "UIWnd/UIFlow.h"
//#include "UIWnd/SPORTCAM/UIMenu/UIMenuWiFi/UIMenuWndWiFiWait.h"
static BOOL Cmd_key_i(unsigned char argc, char **argv)
{
DBG_DUMP("I Key\r\n");
#if(IPCAM_FUNC!=ENABLE)
//#NT#2016/03/23#Isiah Chang -begin
//#NT#add new Wi-Fi UI flow.
#if(WIFI_UI_FLOW_VER == WIFI_UI_VER_2_0)
if (UI_GetData(FL_WIFI_LINK) == WIFI_LINK_NG) {
BKG_PostEvent(NVTEVT_BKW_WIFI_ON);
}
#else
#if defined(_UI_STYLE_LVGL_)
lv_plugin_scr_open(UIFlowWifiWait, NULL);
#else
Ux_OpenWindow(&UIMenuWndWiFiWaitCtrl, 0);
#endif
#endif
//#NT#2016/03/23#Isiah Chang -end
#endif
#if (WIFI_FUNC == ENABLE)
BKG_PostEvent(NVTEVT_BKW_WIFI_ON);
#else
#if !defined(_NVT_ETHERNET_NONE_)
//ImageApp_Common_RtspStart(0);
//Ux_SendEvent(&CustomMovieObjCtrl, NVTEVT_EXE_MOVIE_STRM_START, 0);
#endif
#endif
return TRUE;
}
#endif
static BOOL Cmd_key_next(unsigned char argc, char **argv)
{
DBG_DUMP("next Key\r\n");
Ux_PostEvent(NVTEVT_KEY_NEXT, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_NEXT, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
//#NT#2016/03/16#Niven Cho -begin
//#NT#add key previous
static BOOL Cmd_key_prev(unsigned char argc, char **argv)
{
DBG_DUMP("prev Key\r\n");
Ux_PostEvent(NVTEVT_KEY_PREV, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_PREV, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
//#NT#2016/03/16#Niven Cho -end
static BOOL Cmd_key_select(unsigned char argc, char **argv)
{
DBG_DUMP("select Key\r\n");
Ux_PostEvent(NVTEVT_KEY_SELECT, 1, NVTEVT_KEY_PRESS);
Ux_PostEvent(NVTEVT_KEY_SELECT, 1, NVTEVT_KEY_RELEASE);
return TRUE;
}
static BOOL Cmd_key_cut(unsigned char argc, char **argv)
{
#if(MOVIE_MODE==ENABLE)
UINT32 ircut = 0;
sscanf_s(argv[0], "%d ", &ircut);
DBG_DUMP("ircut %d\r\n", ircut);
Ux_PostEvent(NVTEVT_EXE_MOVIE_IR_CUT, 1, ircut);
#endif
return TRUE;
}
#if 0//(CURL_FUNC == ENABLE)
static void CurlCmd_dumpmem(UINT32 Addr, UINT32 size)
{
UINT32 i, j;
DBG_DUMP("\r\n Addr=0x%x, size =0x%x\r\n", Addr, size);
for (j = Addr; j < (Addr + size); j += 0x10) {
DBG_DUMP("^R 0x%8x:", j);
for (i = 0; i < 16; i++) {
DBG_DUMP("0x%2x,", *(char *)(j + i));
}
DBG_DUMP("\r\n");
}
DBG_DUMP("Data %s\r\n", (char *)Addr);
}
static void curl_rw_cb(UINT32 MessageID, UINT32 Status, UINT32 isContine, UINT32 Param3)
{
UINT32 *bContue = (UINT32 *)isContine;
if (bContue) {
// set contine false to stop curl r/w
//*bContue = FALSE;
}
}
#endif
static BOOL Cmd_key_curl(unsigned char argc, char **argv)
{
#if 0 //(CURL_FUNC == ENABLE)
#include "NetFs.h"
static char tmpbuff[0x400000];
UINT32 size, pos;
char ip[60] = "192.168.0.3";
char rootdir[10] = "A:\\";
char path[60] = "A:\\test.bin";
//sscanf(strCmd,"%d %d %d %d %d %d %d %d",&g_lviewframeRate,&g_lviewTargetRate,&g_lviewQueueFrame,&g_lviewPort,&g_lviewTaskPri, &g_hwmemcpy, &g_maxJpgSize, &g_reqDelay);
sscanf(strCmd, "%d %s", &size, path);
FST_FILE filehdl;
NetFs_SetParam(NETFS_PARAM_REMOTE_IP, (UINT32)ip);
NetFs_SetParam(NETFS_PARAM_ROOT_DIR, (UINT32)rootdir);
NetFs_SetParam(NETFS_PARAM_USE_SSL, FALSE);
// test1
pos = 0;
filehdl = NetFs_OpenFile(path, FST_OPEN_READ);
NetFs_SeekFile(filehdl, 0, FST_SEEK_SET);
size = 0x200000;
NetFs_ReadFile(filehdl, (UINT8 *)tmpbuff, &size, 0, NULL);
pos += size;
NetFs_SeekFile(filehdl, pos, FST_SEEK_SET);
size = 0x200000;
NetFs_ReadFile(filehdl, (UINT8 *)tmpbuff + pos, &size, 0, curl_rw_cb);
pos += size;
NetFs_CloseFile(filehdl);
size = 0x200000;
filehdl = FileSys_OpenFile("A:\\CURL\\test1.bin", FST_OPEN_WRITE | FST_CREATE_ALWAYS);
FileSys_WriteFile(filehdl, (UINT8 *)tmpbuff, &size, 0, NULL);
FileSys_CloseFile(filehdl);
pos = 0;
filehdl = NetFs_OpenFile("A:\\CURL\\testuplo.bin", FST_OPEN_WRITE | FST_CREATE_ALWAYS);
NetFs_SetUploadSrcFilePath(filehdl, "A:\\test.bin");
size = 0x100000;
NetFs_WriteFile(filehdl, (UINT8 *)tmpbuff + pos, &size, 0, curl_rw_cb);
pos += size;
size = 0x000080;
NetFs_WriteFile(filehdl, (UINT8 *)tmpbuff + pos, &size, 0, NULL);
pos += size;
size = 0x000080;
NetFs_WriteFile(filehdl, (UINT8 *)tmpbuff + pos, &size, 0, NULL);
pos += size;
size = 0x0fff00;
NetFs_WriteFile(filehdl, (UINT8 *)tmpbuff + pos, &size, 0, NULL);
pos += size;
NetFs_CloseFile(filehdl);
/*
// test2
pos = 0;
filehdl = NetFs_OpenFile(path,FST_OPEN_READ);
NetFs_SeekFile(filehdl,0,FST_SEEK_SET);
size = 0x10000;
NetFs_ReadFile(filehdl, (UINT8 *)tmpbuff, &size, 0, NULL);
pos += size;
NetFs_SeekFile(filehdl,pos,FST_SEEK_SET);
size = 0x10000;
NetFs_ReadFile(filehdl, (UINT8 *)tmpbuff+pos, &size, 0, NULL);
pos += size;
NetFs_CloseFile(filehdl);
size = 0x20000;
filehdl = FileSys_OpenFile("A:\\CURL\\test2.bin",FST_OPEN_WRITE|FST_CREATE_ALWAYS);
FileSys_WriteFile(filehdl, (UINT8 *)tmpbuff, &size, 0, NULL);
FileSys_CloseFile(filehdl);
// test3
pos = 0;
filehdl = NetFs_OpenFile(path,FST_OPEN_READ);
NetFs_SeekFile(filehdl,0,FST_SEEK_SET);
size = 0x20000;
NetFs_ReadFile(filehdl, (UINT8 *)tmpbuff, &size, 0, NULL);
pos += size;
NetFs_SeekFile(filehdl,pos,FST_SEEK_SET);
size = 0x20000;
NetFs_ReadFile(filehdl, (UINT8 *)tmpbuff+pos, &size, 0, NULL);
pos += size;
NetFs_CloseFile(filehdl);
size = 0x40000;
filehdl = FileSys_OpenFile("A:\\CURL\\test3.bin",FST_OPEN_WRITE|FST_CREATE_ALWAYS);
FileSys_WriteFile(filehdl, (UINT8 *)tmpbuff, &size, 0, NULL);
FileSys_CloseFile(filehdl);
// test4
pos = 0;
filehdl = NetFs_OpenFile(path,FST_OPEN_READ);
size = 0x50000;
NetFs_ReadFile(filehdl, (UINT8 *)tmpbuff, &size, 0, NULL);
pos += size;
size = 0x50000;
NetFs_ReadFile(filehdl, (UINT8 *)tmpbuff+pos, &size, 0, NULL);
pos += size;
NetFs_CloseFile(filehdl);
size = 0xA0000;
filehdl = FileSys_OpenFile("A:\\CURL\\test4.bin",FST_OPEN_WRITE|FST_CREATE_ALWAYS);
FileSys_WriteFile(filehdl, (UINT8 *)tmpbuff, &size, 0, NULL);
FileSys_CloseFile(filehdl);
*/
#endif
return TRUE;
}
static BOOL Cmd_touch_release(unsigned char argc, char **argv)
{
if(argc >= 2){
int x = strtoul(argv[0], NULL, 10);
int y = strtoul(argv[1], NULL, 10);
Ux_PostEvent(NVTEVT_RELEASE, 2, x, y);
}
else{
DBG_WRN("missing args x and y\r\n");
}
return TRUE;
}
static BOOL Cmd_touch_press(unsigned char argc, char **argv)
{
if(argc >= 2){
int x = strtoul(argv[0], NULL, 10);
int y = strtoul(argv[1], NULL, 10);
Ux_PostEvent(NVTEVT_PRESS, 2, x, y);
}
else{
DBG_WRN("missing args x and y\r\n");
}
return TRUE;
}
static SXCMD_BEGIN(key_cmd_tbl, "key_cmd_tbl")
SXCMD_ITEM("power", Cmd_key_power, "power key")
SXCMD_ITEM("delete", Cmd_key_delete, "delete key")
SXCMD_ITEM("menu", Cmd_key_menu, "menu key")
SXCMD_ITEM("m", Cmd_key_menu, "menu key")
SXCMD_ITEM("mode", Cmd_key_mode, "mode key")
SXCMD_ITEM("playback", Cmd_key_playback, "playback key")
SXCMD_ITEM("movie", Cmd_key_movie, "movie key")
SXCMD_ITEM("up", Cmd_key_up, "up key")
SXCMD_ITEM("u", Cmd_key_up, "up key")
SXCMD_ITEM("down", Cmd_key_down, "down key")
SXCMD_ITEM("d", Cmd_key_down, "down key")
SXCMD_ITEM("right", Cmd_key_right, "right key")
SXCMD_ITEM("r", Cmd_key_right, "right key")
SXCMD_ITEM("left", Cmd_key_left, "left key")
SXCMD_ITEM("l", Cmd_key_left, "left key")
SXCMD_ITEM("enter", Cmd_key_enter, "enter key")
SXCMD_ITEM("e", Cmd_key_enter, "enter key")
SXCMD_ITEM("zoomin", Cmd_key_zoomin, "zoomin key pressed")
SXCMD_ITEM("zoomout", Cmd_key_zoomout, "zoomout key pressed")
SXCMD_ITEM("zoominrel", Cmd_key_zoomin_release, "zoomin key released")
SXCMD_ITEM("zoomoutrel", Cmd_key_zoomout_release, "zoomout key released")
SXCMD_ITEM("zoomrel", Cmd_key_zoomrelease, "zoom key released")
SXCMD_ITEM("shutter1", Cmd_key_shutter1, "shutter1 key pressed")
SXCMD_ITEM("shutter2", Cmd_key_shutter2, "suutter2 key pressed")
SXCMD_ITEM("s2", Cmd_key_shutter2, "suutter2 key pressed")
SXCMD_ITEM("shutter1rel", Cmd_key_shutter1rel, "shutter1 key released")
SXCMD_ITEM("shutter2rel", Cmd_key_shutter2rel, "shutter2 key released")
SXCMD_ITEM("custom1", Cmd_key_custom1, "custom1 key")
SXCMD_ITEM("c1", Cmd_key_custom1, "custom1 key")
#if(WIFI_AP_FUNC==ENABLE)
SXCMD_ITEM("i", Cmd_key_i, "i key pressed")
#endif
SXCMD_ITEM("next", Cmd_key_next, "next key")
SXCMD_ITEM("n", Cmd_key_next, "next key")
SXCMD_ITEM("select", Cmd_key_select, "select key")
SXCMD_ITEM("s", Cmd_key_select, "select key")
SXCMD_ITEM("cut %", Cmd_key_cut, "cut key")
SXCMD_ITEM("curl %", Cmd_key_curl, "curl key")
//#NT#2016/03/16#Niven Cho -begin
//#NT#add key previous
SXCMD_ITEM("prev", Cmd_key_prev, "prev key")
SXCMD_ITEM("p", Cmd_key_prev, "prev key")
//#NT#2016/03/16#Niven Cho -end
/* touch fake event */
SXCMD_ITEM("touch_release", Cmd_touch_release, "touch release(x, y)")
SXCMD_ITEM("tr", Cmd_touch_release, "touch release(x, y)")
SXCMD_ITEM("touch_press", Cmd_touch_press, "touch press(x, y)")
SXCMD_ITEM("tp", Cmd_touch_press, "touch press(x, y)")
SXCMD_END()
static int key_cmd_showhelp(int (*dump)(const char *fmt, ...))
{
UINT32 cmd_num = SXCMD_NUM(key_cmd_tbl);
UINT32 loop = 1;
dump("---------------------------------------------------------------------\r\n");
dump(" %s\n", "ker");
dump("---------------------------------------------------------------------\r\n");
for (loop = 1 ; loop <= cmd_num ; loop++) {
dump("%15s : %s\r\n", key_cmd_tbl[loop].p_name, key_cmd_tbl[loop].p_desc);
}
return 0;
}
MAINFUNC_ENTRY(key, argc, argv)
{
UINT32 cmd_num = SXCMD_NUM(key_cmd_tbl);
UINT32 loop;
int ret;
if (argc < 2) {
return -1;
}
if (strncmp(argv[1], "?", 2) == 0) {
key_cmd_showhelp(vk_printk);
return 0;
}
for (loop = 1 ; loop <= cmd_num ; loop++) {
if (strncmp(argv[1], key_cmd_tbl[loop].p_name, strlen(argv[1]) + 1) == 0) {
ret = key_cmd_tbl[loop].p_func(argc-2, &argv[2]);
return ret;
}
}
return 0;
}
#if (defined(_NVT_ETHREARCAM_TX_))
#include "UIApp/Network/EthCamAppNetwork.h"
static BOOL Cmd_ethcam_tx_ip_set(unsigned char argc, char **argv)
{
UINT32 ip_addr_item = 0;
UINT32 ip_addr = 0;
sscanf_s(argv[0], "%d", &ip_addr_item);
DBG_DUMP("input=%d\r\n", ip_addr_item);
if(ip_addr_item==0){
ip_addr=0;
DBG_DUMP("ip_addr: 0.0.0.0\r\n");
}else if(ip_addr_item==1){
ip_addr=ipstr2int("192.168.0.12");
DBG_DUMP("ip_addr: 192.168.0.12\r\n");
}else if(ip_addr_item==2){
ip_addr=ipstr2int("192.168.0.13");
DBG_DUMP("ip_addr: 192.168.0.13\r\n");
}else{
DBG_ERR("input wrong parameter\r\n");
}
SysSetFlag(FL_ETHCAM_TX_IP_ADDR, ip_addr);
return TRUE;
}
static BOOL Cmd_ethcam_tx_dump_queue(unsigned char argc, char **argv)
{
MovieExe_EthCamRecId1_DumpBsQ();
return TRUE;
}
static BOOL Cmd_ethcam_tx_dump_bs_info(unsigned char argc, char **argv)
{
ImageApp_MovieMulti_EthCamTxRecId1_DumpBsInfo();
ImageApp_MovieMulti_EthCamTxCloneId1_DumpBsInfo();
return TRUE;
}
#endif
static SXCMD_BEGIN(ts_cmd_tbl, "test command")
#if (defined(_NVT_ETHREARCAM_TX_))
SXCMD_ITEM("ipset %d", Cmd_ethcam_tx_ip_set, "Set Tx IP save in pstore")
SXCMD_ITEM("dumpq", Cmd_ethcam_tx_dump_queue, "Dump Tx Bs Queue")
SXCMD_ITEM("dumpbsi", Cmd_ethcam_tx_dump_bs_info, "Dump Tx Bs Imnfo")
#endif
SXCMD_END()
static int ts_cmd_showhelp(int (*dump)(const char *fmt, ...))
{
UINT32 cmd_num = SXCMD_NUM(ts_cmd_tbl);
UINT32 loop = 1;
dump("---------------------------------------------------------------------\r\n");
dump(" %s\n", "ker");
dump("---------------------------------------------------------------------\r\n");
for (loop = 1 ; loop <= cmd_num ; loop++) {
dump("%15s : %s\r\n", ts_cmd_tbl[loop].p_name, ts_cmd_tbl[loop].p_desc);
}
return 0;
}
MAINFUNC_ENTRY(ts, argc, argv)
{
UINT32 cmd_num = SXCMD_NUM(ts_cmd_tbl);
UINT32 loop;
int ret;
if (argc < 2) {
return -1;
}
if (strncmp(argv[1], "?", 2) == 0) {
ts_cmd_showhelp(vk_printk);
return 0;
}
for (loop = 1 ; loop <= cmd_num ; loop++) {
if (strncmp(argv[1], ts_cmd_tbl[loop].p_name, strlen(argv[1])) == 0) {
ret = ts_cmd_tbl[loop].p_func(argc-2, &argv[2]);
return ret;
}
}
return 0;
}