I am well aware of the problems with the T3 serial port. I am using SerialFix 
to get around the RTS/CTS problem.

My problem is that I am 99.99% sure that an OS bug is causing lost serial data. 
I have been debugging this for many hours and everything seems to point to the 
OS just dropping data.

The protocol is a request/response. So buffer overflow is not an issue. A 
request is not sent until the previous response is fully received. Packet size 
received is 22 bytes.

Monitoring the serial data with a HP serial analyzer. The program runs fine and 
then randomly I get a receive timeout. You can see on the analyzer, the full 
packet response was indeed sent, but the packet state machine runs out of data 
mid packet. 

Looking at the data that the previous SrmReceive call received shows only a 
partial packet received. Normally this is OK as the next call to 
SrmReceiveCheck shows theres more data which is then received and sent through 
the state machine. In the failure mode, there is no more data, SrmReceiveCheck 
returns zero. 



The serial data processing is in a very tight loop (speed is important). Serial 
receive processing is done in the nilEvent of the  AppHandleEvent function. I 
don't think this is a problem as it seems to work fine everywhere else.  I 
assume the low level serial data receive process is not tied to AppEventLoop 
but is interrupt driven at the OS level, so if I take too long in my app 
processing loops, it does not affect the processors ability to service UART 
interrupts and fill the OS receive buffer.

The program runs fine on a TT as well as just about any other Palm from an M100 
to a TX.  The T3 I am using has the latest rom updates. 5.2.1 
10/31/03 12:25:44


I dont expect much from this post...just grasping at straws here in the hopes 
someone else has experienced this.

Thanks,
Mike







-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/

Reply via email to