static void ProcessEscSequence(SYS_CMD_DEVICE_NODE* pCmdIO) { cmdNode *pNext; if(!strcmp(_cmdAppData.seqBuff, _seqUpArrow)) { // up arrow if(_pCurrCmdN) { pNext = _pCurrCmdN->next; if(pNext == _cmdList.head) { return; // reached the end of list } } else { pNext = _cmdList.head; } DisplayNodeMsg(pCmdIO, pNext); } else if(!strcmp(_cmdAppData.seqBuff, _seqDownArrow)) { // down arrow if(_pCurrCmdN) { pNext = _pCurrCmdN->prev; if(pNext != _cmdList.tail) { DisplayNodeMsg(pCmdIO, pNext); } } } else if(!strcmp(_cmdAppData.seqBuff, _seqRightArrow)) { // right arrow if(pCmdIO->cmdPnt < pCmdIO->cmdEnd) { (*pCmdIO->pCmdApi->msg)(pCmdIO->cmdIoParam, _seqRightArrow); pCmdIO->cmdPnt++; } } else if(!strcmp(_cmdAppData.seqBuff, _seqLeftArrow)) { // left arrow if(pCmdIO->cmdPnt > pCmdIO->cmdBuff) { pCmdIO->cmdPnt--; (*pCmdIO->pCmdApi->msg)(pCmdIO->cmdIoParam, _seqLeftArrow); } } else { (*pCmdIO->pCmdApi->msg)(pCmdIO->cmdIoParam, " *** Command Processor: unknown command. ***" LINE_TERM); (*pCmdIO->pCmdApi->msg)(pCmdIO->cmdIoParam, _promptStr); } }
static void ProcessEscSequence(_CMDIO_DEV_NODE* pCmdIO) { cmdNode *pNext; char seq[ESC_SEQ_SIZE+1]; int nChar = 0; const void* cmdIoParam = pCmdIO->cmdIoParam; while(nChar<ESC_SEQ_SIZE) { while(!(*pCmdIO->pCmdApi->isRdy)(cmdIoParam)); seq[nChar++] = (*pCmdIO->pCmdApi->getc)(cmdIoParam); } seq[nChar] = '\0'; if(!strcmp(seq, _seqUpArrow)) { // up arrow if(_pCurrCmdN) { pNext = _pCurrCmdN->next; if(pNext == _cmdList.head) { return; // reached the end of list } } else { pNext = _cmdList.head; } DisplayNodeMsg(pCmdIO, pNext); } else if(!strcmp(seq, _seqDownArrow)) { // down arrow if(_pCurrCmdN) { pNext = _pCurrCmdN->prev; if(pNext != _cmdList.tail) { DisplayNodeMsg(pCmdIO, pNext); } } } else if(!strcmp(seq, _seqRightArrow)) { // right arrow if(pCmdIO->cmdPnt < pCmdIO->cmdEnd) { (*pCmdIO->pCmdApi->msg)(cmdIoParam, _seqRightArrow); pCmdIO->cmdPnt++; } } else if(!strcmp(seq, _seqLeftArrow)) { // left arrow if(pCmdIO->cmdPnt > pCmdIO->cmdBuff) { pCmdIO->cmdPnt--; (*pCmdIO->pCmdApi->msg)(cmdIoParam, _seqLeftArrow); } } else { (*pCmdIO->pCmdApi->msg)(cmdIoParam, " *** Command Processor: unknown command. ***" LINE_TERM); (*pCmdIO->pCmdApi->msg)(cmdIoParam, _promptStr); } }