From 618184d2838cd823c2a1bac2700c952364e86bd8 Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Fri, 18 Nov 2022 15:23:59 +0100 Subject: [PATCH] add error message when command failed due to validation from parser --- ADIS_tinyK22_SplitFlap/source/shell.c | 4 ++++ ADIS_tinyK22_SplitFlap/source/splitflap.c | 29 ++++++++++++++++------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/ADIS_tinyK22_SplitFlap/source/shell.c b/ADIS_tinyK22_SplitFlap/source/shell.c index f3c70e8..4c453bd 100644 --- a/ADIS_tinyK22_SplitFlap/source/shell.c +++ b/ADIS_tinyK22_SplitFlap/source/shell.c @@ -52,9 +52,11 @@ static uint8_t ParseCommand(const uint8_t *cmd, bool *handled, McuShell_ConstStd if(McuUtility_xatoi(&cmd, &setupId) == ERR_OK){ // validate param if(setupId > NUM_MAX_AMOUNT_FLAPS){ + McuLog_error("setupId cannot exists"); return ERR_FAILED; } }else{ + McuLog_error("failed to parse setupId"); return ERR_FAILED; } // second param @@ -63,9 +65,11 @@ static uint8_t ParseCommand(const uint8_t *cmd, bool *handled, McuShell_ConstStd // validate param int32_t offset = 0; if(MotOffset_Get(hwId, &offset) != ERR_OK){ + McuLog_error("Splitflap with id %i does not exists",hwId); return ERR_FAILED; } }else{ + McuLog_error("failed to parse hwId"); return ERR_FAILED; } Shell_cmd_s shellCmd = {.shellCmd = Shell_Identify_SF, .numberOfParams = 2, .params = {hwId,setupId}}; diff --git a/ADIS_tinyK22_SplitFlap/source/splitflap.c b/ADIS_tinyK22_SplitFlap/source/splitflap.c index 2dd6110..494480f 100644 --- a/ADIS_tinyK22_SplitFlap/source/splitflap.c +++ b/ADIS_tinyK22_SplitFlap/source/splitflap.c @@ -151,16 +151,27 @@ bool SF_MoveMotorToZeroPosition(SF_Handle_t instance){ } // turn until sensor is on and not reached one full rotation already (timeout) - while(SF_GetMagSensorAtZeroPosition((SF_t*)instance) == false && numStepsMoved < SPLITFLAP_STEPS_ONE_ROUND ){ - McuULN2003_IncStep(((SF_t*)instance)->motor); -#ifdef McuLib_CONFIG_SDK_USE_FREERTOS - vTaskDelay(pdMS_TO_TICKS(20)); -#else - McuWait_Waitms(20); -#endif - numStepsMoved++; +// while(SF_GetMagSensorAtZeroPosition((SF_t*)instance) == false && numStepsMoved < SPLITFLAP_STEPS_ONE_ROUND ){ +// McuULN2003_IncStep(((SF_t*)instance)->motor); +//#ifdef McuLib_CONFIG_SDK_USE_FREERTOS +// vTaskDelay(pdMS_TO_TICKS(20)); +//#else +// McuWait_Waitms(20); +//#endif +// numStepsMoved++; +// } + McuULN2003_AccelerationStart(((SF_t*)instance)->motor); + while(SF_GetMagSensorAtZeroPosition((SF_t*)instance) == false && numStepsMoved < SPLITFLAP_STEPS_ONE_ROUND){ + if(McuULN2003_StepCallback(((SF_t*)instance)->motor, true)){ + numStepsMoved++; + } + #ifdef McuLib_CONFIG_SDK_USE_FREERTOS + vTaskDelay(pdMS_TO_TICKS(20)); + #else + McuWait_Waitms(20); + #endif } - + McuULN2003_AccelerationEnd(((SF_t*)instance)->motor); // offset after init if(numStepsMoved < SPLITFLAP_STEPS_ONE_ROUND){ for(int i=0; i < offsetSteps; i++){