On Graphics master I have a situation where there are two worker threads writing and reading on two serial ports respectively. Occassionaly when one port "times out" the other will as well. It appears to be some sort of race condition (that is, very random, timing dependent). It happens more under the release build of my app than the debug build.
I can cause one port to timeout off and on randomly through hardware (bad connection) and watch the results on the other port.
Any known issues with the serial ports or the driver on Win CE 3.0?
Actually the app I have requires special hardware. If I have time I will write a test program... I have re-written the app to use only 1 thread so that the two ports are not communicating at the same time. Works fine as long as they both aren't talking.
Tim - I'd be interested to see if you are continuing to have problems after creating a test application. I am using the GMaster, as well, I am using all 7 serial ports concurrently. One of the COM ports has some custom hardware connected. The other ports are communicating with off-the-self DMM's, Dial Indicators, and other commercial meters, etc.
I have seperate threads for reading/writing to each device. As data is collected it is immediately transmitted to a connected PC via the ethernet port. Anyway, I have not observed any of the "time-out" problems you have described.
Let me know if you need to see my source for testing.
Interesting. I would like to see your source. The threads I have are running constantly with a 5 millisecond pause each loop. So both ports are under heavy load.
My app works fine as long as one of the ports does not exprience comm errors. If it starts to experience constant errors that is when the problem shows up. I can cause one of the ports to experience errors consistenly by creating a bad connection. The error situation is unique in that normally using serial ports you would never see constant errors. When one port is experiencing errors the other port will occasionly experience timeouts. So everything is fine as long as both ports are working correctly or at least experiencing few errors.