Serial Communication and Blocking vs NonBlocking Functions

Thanks for the clarification about Serial.available(). The code on the sending end is looking for the 'n' character coming over the serial port. When it receives this character it sets a flag to issue another position command and then resets the incoming buffer to null (or empty). Once the flag has been set, it basically removes the first item from the list (as that was the one that was sent last) and then formats another string getting the next position values for each of the four motors (as well as the current state of the run, speed, acceleration, and reset values). Then, assuming the port is open, it then sends the formatted string back over to the Arduino using the WriteLine(message) command. Looking at this command on the msdn website, it looks like the default behavior of this function automatically adds a '\r\n' character to the end of the line. I'm not adding it on myself... but the command automatically does it. So, then once that command is issued, the Arduino reads in the string and goes through the while loop again. It shouldn't be sending three batches of data ever... Hopefully this helps clarify it a bit.