Show Posts
Pages: [1]
1  Using Arduino / Networking, Protocols, and Devices / Re: OBD-II help (J1850 PWM) on: February 04, 2013, 03:05:25 pm
void getResponse(void){
  char inChar=0;
  //Keep reading characters until we get a carriage return
  while(inChar != '\r'){
    //If a character comes in on the serial port, we need to act on it.
    if(Serial1.available() > 0){
      //Start by checking if we've received the end of message character ('\r').
      if(Serial1.peek() == '\r'){
        //Clear the Serial buffer;
        //Put the end of string character on our data string
        //Reset the buffer index so that the next character goes back at the beginning of the string.
      //If we didn't get the end of message character, just add the new character to the string.
        //Get the new character from the Serial port.
        inChar =;
        //Add the new character to the string, and increment the index variable.

Im kinda curious you say that its printing the response before it has been fully received.
who is that possible, as far as i can see it has a while loop that is checking to see if the \r is received
why is that not enough ? how is it escaping from that ? and why will it work to add a flag and another while loop that essentially does the same check?
Pages: [1]