void Handle_USB_Read() { static char myChar = 0; uint8_t Recieved_Data = 0; if (USB1_GetCharsInRxBuf()!=0) { while(CDC1_GetChar(&Recieved_Data)==ERR_OK) { USB1_SendChar(Recieved_Data); CMD_String_Buffer[CMD_Index] = Recieved_Data; do { if(CMD_Index>(CMD_STRING_SIZE-1)) // If buffer overflowed { Buffer_Overflow = true; break; } if(Recieved_Data=='\r') // if received enter key { Command_Recieved = true; break; } CMD_Index++; }while(0); if(Buffer_Overflow) { CMD_Index=0; CDC1_SendString((char *)CMD_Invalid_Str); memset(CMD_String_Buffer,0,CMD_STRING_SIZE); } if(Command_Recieved) { Command_Recieved = false; CDC1_SendString("\n"); Handle_Command(CMD_String_Buffer); memset(CMD_String_Buffer,0,CMD_STRING_SIZE); // Erase command CMD_Index=0; } } } }
void TargetingSystemClient::Handle_Incoming_Data(char * data,int size) { //printf("Handle_Incoming_Data: %s \n",data); // check if we ever get a command which is incomplete, i.e. doesn't have a /n char * endln = strchr(data,'\n'); if (endln == NULL) { printf("ERROR: Targetting system got partial command! %s\r\n",data); return; } char *strtok_tmp; char *cmd = strtok_r(data,"\r",&strtok_tmp); while(cmd !=NULL) { Handle_Command(cmd); cmd = strtok_r(NULL,"\r",&strtok_tmp); } //printf("done.\n"); }