Exemplo n.º 1
0
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");
}