Hello Scott,
I created a simple loop back test using 4800,7,e,2 and it worked perfectly. The test VI wrote a message onto the port, waited 2 seconds, requested the number of bytes on the port and then read that number of bytes from the port. It worked as expected...
I then further investigated my problem and found that in every case, when even parity is used regardless of baud rate, only the first character of the sent file is retrieved. The correct number of bytes shows up but when requested, only 1 character is returned (for even parity only).
I then used hyperterminal (4800,7,e,2) and noticed that every character I typed from my computer was correctly displayed on the PDA. Based on this finding, coupled with the fact that only the first character is correctly displayed, I used a character delay and found that if when sending the file to the PDA I pause 25 msecs between each character (a character delay) that the entire file could be correctly received by the PDA at even parity. The character delay method begins to simulate typed characters since a delay exits between each character.
Additionally, going back to the loop test, once the bytes are written to the buffer it is no longer active (data is not being written to it during the read). I tried to simulate this by initializing the PDA port and letting it set idle, I then sent over a file (112 bytes) from another computer, then I tapped read on the PDA, it found the 112 bytes and then tried to read them. This should simulate the loop test, unfortunately, only the first byte is returned although the correct number of bytes was found and requested.
So, in conclusion, I can correctly read a file sent at 4800,7,e,2 as long as during the transmission, a delay of about 25 msecs is created between writing each character. Additionally, the PDA can correctly recieve a file duing a loop-back test. Also, I receive the same incorrect behavior using the PDA Serial Example VI. It finds the right number of bytes but when that number is requested, only 1 character is returned?
I am not sure what all of this means but I wanted to pass along my findings. It appears that the problem may be with my PDA but it is still very difficult to know for sure. I am hoping that you could somehow validate correct behavior at NI using a method different from the loop test.
Regards,
Guy