From b6a3d272db3557d6a288ab5d60e127371530f8f6 Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Fri, 18 Nov 2022 16:01:47 +0100 Subject: [PATCH] prepared command to set manualy offset --- ADIS_tinyK22_SplitFlap/source/application.c | 3 +++ ADIS_tinyK22_SplitFlap/source/shell.c | 15 +++++++++++++++ ADIS_tinyK22_SplitFlap/source/shell.h | 4 +++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/ADIS_tinyK22_SplitFlap/source/application.c b/ADIS_tinyK22_SplitFlap/source/application.c index 40a5e40..30c6f5e 100644 --- a/ADIS_tinyK22_SplitFlap/source/application.c +++ b/ADIS_tinyK22_SplitFlap/source/application.c @@ -90,6 +90,9 @@ static void App_Task(void* pv){ McuLog_error("Invalid String to Display"); } break; + case Shell_Add_New_Id_SF: + McuLog_error("Command is coming soon..."); + break; default: McuLog_error("Not implemented command recieved in App_Task. Command Id was <%i>", (int)cmd.shellCmd); break; diff --git a/ADIS_tinyK22_SplitFlap/source/shell.c b/ADIS_tinyK22_SplitFlap/source/shell.c index 3b3f159..87ddcaa 100644 --- a/ADIS_tinyK22_SplitFlap/source/shell.c +++ b/ADIS_tinyK22_SplitFlap/source/shell.c @@ -28,6 +28,7 @@ static uint8_t PrintHelp(const McuShell_StdIOType *io) { McuShell_SendHelpStr((unsigned char*)" setId ", (const unsigned char*)"sets the position (setupId) of the sf and its id (hwId)\r\n", io->stdOut); McuShell_SendHelpStr((unsigned char*)" initAll", (const unsigned char*)"init all Splitflaps\r\n", io->stdOut); McuShell_SendHelpStr((unsigned char*)" Display ", (const unsigned char*)"displays as many chars of the string as sf are available\r\n", io->stdOut); + McuShell_SendHelpStr((unsigned char*)" addId ", (const unsigned char*)"add new hwId with offset\r\n", io->stdOut); return ERR_OK; } @@ -94,6 +95,20 @@ static uint8_t ParseCommand(const uint8_t *cmd, bool *handled, McuShell_ConstStd return ERR_FAILED; } vQueueShellCmd(shellCmd); + }else if(McuUtility_strncmp((char*)cmd,SHELL_CMD_ADD_NEW_ID_SF,sizeof(SHELL_CMD_ADD_NEW_ID_SF)-1) == 0){ + int32_t hwId = 0; + int32_t offset = 0; + *handled = TRUE; + cmd += sizeof(SHELL_CMD_ADD_NEW_ID_SF)-1; + if(McuUtility_xatoi(&cmd, &hwId) != ERR_OK){ + return PrintError(cmdCpy, (const uint8_t*)"failed to parse hwId", io); + } + cmd++; + if(McuUtility_xatoi(&cmd, &offset) != ERR_OK){ + return PrintError(cmdCpy, (const uint8_t*)"failed to parse offset", io); + } + Shell_cmd_s shellCmd = {.shellCmd = Shell_Add_New_Id_SF, .numberOfParams = 2, .params = {hwId,offset}}; + vQueueShellCmd(shellCmd); } return ERR_OK; diff --git a/ADIS_tinyK22_SplitFlap/source/shell.h b/ADIS_tinyK22_SplitFlap/source/shell.h index ba8a82c..823ca88 100644 --- a/ADIS_tinyK22_SplitFlap/source/shell.h +++ b/ADIS_tinyK22_SplitFlap/source/shell.h @@ -15,6 +15,7 @@ #define SHELL_CMD_IDENTIFY_SF "SplitFlap setId" #define SHELL_CMD_INIT_ALL_SF "SplitFlap initAll" #define SHELL_CMD_DISPLAY_STRING_SF "SplitFlap Display" +#define SHELL_CMD_ADD_NEW_ID_SF "SplitFlap addId" #define SHELL_CMD_QUEUE_LENGTH 5 @@ -23,7 +24,8 @@ typedef enum ShellCmd { Shell_Identify_SF, Shell_Init_All_SF, Shell_Display_String_SF, - Shell_Powerof_rpi + Shell_Powerof_rpi, + Shell_Add_New_Id_SF, }Shell_cmd_t; typedef struct ShellCmd_s {