diff --git a/ADIS_ESP32_Eclipse/config/IncludeMcuLibConfig.h b/ADIS_ESP32_Eclipse/config/IncludeMcuLibConfig.h index 16fe2f0..5a71807 100644 --- a/ADIS_ESP32_Eclipse/config/IncludeMcuLibConfig.h +++ b/ADIS_ESP32_Eclipse/config/IncludeMcuLibConfig.h @@ -15,12 +15,12 @@ #define configHEAP_SCHEME_IDENTIFICATION (0) /* ESP-IDF RTOS used */ /* -------------- McuShell settings -------------------------- */ -#define McuShell_CONFIG_PROJECT_NAME_STRING "ESP32 Shell" -#define McuShell_CONFIG_ECHO_ENABLED (1) -#define McuShell_CONFIG_PROMPT_STRING "ESP32> " -#define McuShell_CONFIG_MULTI_CMD_ENABLED (1) -#define McuShell_CONFIG_MULTI_CMD_SIZE (96) - +#define McuShell_CONFIG_PROJECT_NAME_STRING "ESP32 Shell" +#define McuShell_CONFIG_ECHO_ENABLED (1) +#define McuShell_CONFIG_PROMPT_STRING "ESP32> " +#define McuShell_CONFIG_MULTI_CMD_ENABLED (1) +#define McuShell_CONFIG_MULTI_CMD_SIZE (96) +#define McuShell_CONFIG_DEFAULT_SHELL_BUFFER_SIZE (96) /* -------------- McuCriticalSections settings -------------------------- */ #define McuCriticalSection_CONFIG_USE_RTOS_CRITICAL_SECTION (1) diff --git a/ADIS_ESP32_Eclipse/main/robot.c b/ADIS_ESP32_Eclipse/main/robot.c index 64e70a9..c8e18df 100644 --- a/ADIS_ESP32_Eclipse/main/robot.c +++ b/ADIS_ESP32_Eclipse/main/robot.c @@ -44,10 +44,20 @@ uint8_t ROBOT_ParseCommand(const unsigned char* cmd, bool *handled, const McuShe return ERR_OK; } else if (McuUtility_strncmp((char*)cmd, (char*)"robo sendcmd ", sizeof("robo sendcmd ")-1)==0) { static uint8_t response[10*1024]; + unsigned char buffer[McuShell_CONFIG_DEFAULT_SHELL_BUFFER_SIZE]; const unsigned char *p; *handled = TRUE; p = cmd+sizeof("robo sendcmd ")-1; + while (*p==' ') { /* skip leading spaces */ + p++; + } + if (*p=='"') { /* double-quoted command: it can contain multiple commands */ + if (McuUtility_ScanDoubleQuotedString(&p, buffer, sizeof(buffer))!=ERR_OK) { + return ERR_FAILED; + } + p = buffer; + } SHELL_SendToRobotAndGetResponse(p, response, sizeof(response)); McuShell_SendStr(response, io->stdOut); /* show result on console */ return ERR_OK; diff --git a/ADIS_Sumo_Styger/Sumo/Maze.c b/ADIS_Sumo_Styger/Sumo/Maze.c index 1483ac3..d07b4ef 100644 --- a/ADIS_Sumo_Styger/Sumo/Maze.c +++ b/ADIS_Sumo_Styger/Sumo/Maze.c @@ -144,7 +144,13 @@ uint8_t MAZE_EvaluteTurn(bool *finished, bool *deadEndGoBw) { *deadEndGoBw = FALSE; /* default */ currLineKind = REF_GetLineKind(REF_LINE_KIND_MODE_MAZE); if (currLineKind==REF_LINE_NONE) { /* nothing, must be dead end */ +#if PL_GO_DEADEND_BW + TURN_Turn(TURN_STEP_LINE_BW, NULL); /* step back so we are again on the line for line following */ + turn = TURN_STRAIGHT; + *deadEndGoBw = TRUE; +#else turn = TURN_LEFT180; +#endif } else { HISTORY_Clear(); /* clear history values */ HISTORY_SampleSensors(); /* store current values */ diff --git a/ADIS_Sumo_Styger/source/IncludeMcuLibConfig.h b/ADIS_Sumo_Styger/source/IncludeMcuLibConfig.h index fd62bd0..c4cfaba 100644 --- a/ADIS_Sumo_Styger/source/IncludeMcuLibConfig.h +++ b/ADIS_Sumo_Styger/source/IncludeMcuLibConfig.h @@ -31,13 +31,6 @@ #define McuShell_CONFIG_MULTI_CMD_SIZE (96) /* maximum size of a single command in a multi-command string */ #define McuShell_CONFIG_PROMPT_STRING "ROBO> " #define McuShell_CONFIG_ECHO_ENABLED (1) - -/* Mcu log */ -#define McuLog_CONFIG_IS_ENABLED (1) -#define McuLog_CONFIG_USE_RTT_CONSOLE (1) -#define McuLog_CONFIG_LOG_TIMESTAMP_DATE (0) // disable since time is not used -#define McuLog_CONFIG_LOG_TIMESTAMP_TIME (0) - /* ---------------------------------------------------------------------------------------*/ /* I2C and OLED */ //#define CONFIG_I2C_USE_PORT_B (1) /* tinyK22: PTB0, PTB1 */ @@ -127,5 +120,10 @@ /* ---------------------------------------------------------------------------------------*/ /* FXOS8700 accelerometer */ #define McuFXOS8700_CONFIG_I2C_DEVICE_ADDRESS (0x1D) +/* ------------------- McuLog -----------------------*/ +#define McuLog_CONFIG_IS_ENABLED (1) +#define McuLog_CONFIG_LOG_TIMESTAMP_DATE (0) +#define McuLog_CONFIG_LOG_TIMESTAMP_TIME (1) +#define McuLog_CONFIG_NOF_CONSOLE_LOGGER (2) /* ---------------------------------------------------------------------------------------*/ diff --git a/ADIS_Sumo_Styger/source/Shell.c b/ADIS_Sumo_Styger/source/Shell.c index 851de23..80e032e 100644 --- a/ADIS_Sumo_Styger/source/Shell.c +++ b/ADIS_Sumo_Styger/source/Shell.c @@ -54,6 +54,7 @@ #if PL_CONFIG_HAS_ACCEL #include "McuFXOS8700.h" #endif +#include "McuLog.h" static const McuShell_ParseCommandCallback CmdParserTable[] = { @@ -111,6 +112,7 @@ static const McuShell_ParseCommandCallback CmdParserTable[] = #if PL_CONFIG_HAS_ACCEL McuFXOS8700_ParseCommand, #endif + McuLog_ParseCommand, NULL /* Sentinel */ }; @@ -193,7 +195,7 @@ static void ShellTask(void *pv) { unsigned int i; (void)pv; /* not used */ - McuShell_SendStr((uint8_t*)"Shell task started.\r\n", McuShell_GetStdio()->stdOut); + McuLog_info("Shell task started.\r\n"); for(i=0;istdOut); McuShell_SendStatusStr((const unsigned char*)" Build", (const unsigned char*)__DATE__, io->stdOut); @@ -652,12 +652,18 @@ uint8_t McuShell_PrintStatus(McuShell_ConstStdIOType *io) #if McuShell_CONFIG_MULTI_CMD_ENABLED McuUtility_strcpy(buf, sizeof(buf), (unsigned char*)"yes: '"); McuUtility_chcat(buf, sizeof(buf), McuShell_CONFIG_MULTI_CMD_CHAR); - McuUtility_strcat(buf, sizeof(buf), (unsigned char*)"'\r\n"); + McuUtility_strcat(buf, sizeof(buf), (unsigned char*)"', size: "); + McuUtility_strcatNum32u(buf, sizeof(buf), McuShell_CONFIG_MULTI_CMD_SIZE); + McuUtility_strcat(buf, sizeof(buf), (unsigned char*)"\r\n"); McuShell_SendStatusStr((const unsigned char*)" multiCmd", buf, io->stdOut); #else McuShell_SendStatusStr((const unsigned char*)" multiCmd", (unsigned char*)"no\r\n", io->stdOut); #endif + McuUtility_Num32uToStr(buf, sizeof(buf), McuShell_DEFAULT_SHELL_BUFFER_SIZE); + McuUtility_strcat(buf, sizeof(buf), (unsigned char*)" bytes default size\r\n"); + McuShell_SendStatusStr((const unsigned char*)" size", buf, io->stdOut); + return ERR_OK; }