|
|
@ -20,7 +20,7 @@ void CmdScheduler::initialize(UART_HandleTypeDef* huart, uint32_t rxbufsize) { |
|
|
|
cfg.rxovertime_ms = 3; |
|
|
|
cfg.name = "CmdSchedulerUart"; |
|
|
|
|
|
|
|
rxbuf = new char[rxbufsize]; |
|
|
|
rxbuf = new char[rxbufsize + 1]; |
|
|
|
ZASSERT(rxbuf != NULL); |
|
|
|
|
|
|
|
m_uart->initialize(&cfg); |
|
|
@ -30,6 +30,7 @@ void CmdScheduler::initialize(UART_HandleTypeDef* huart, uint32_t rxbufsize) { |
|
|
|
return; |
|
|
|
} |
|
|
|
memcpy(rxbuf, data, len); |
|
|
|
rxbuf[len] = '\0'; |
|
|
|
m_rxsize = len; |
|
|
|
m_dataisready = true; |
|
|
|
// on data ,in irq context
|
|
|
@ -66,11 +67,9 @@ void CmdScheduler::schedule() { |
|
|
|
void CmdScheduler::callcmd(const char* cmd, CmdProcessContext& context) { |
|
|
|
int argc = 0; |
|
|
|
char* argv[10] = {0}; |
|
|
|
{ |
|
|
|
memset(cmdcache, 0, sizeof(cmdcache)); |
|
|
|
argc = 0; |
|
|
|
memset(argv, 0, sizeof(argv)); |
|
|
|
} |
|
|
|
memset(cmdcache, 0, sizeof(cmdcache)); |
|
|
|
argc = 0; |
|
|
|
memset(argv, 0, sizeof(argv)); |
|
|
|
strcpy(cmdcache, cmd); |
|
|
|
prase_cmd(cmdcache, strlen(cmdcache), argc, argv); |
|
|
|
|
|
|
|