|
The synaser code fails when reading from an IgotU GPS, which uses a virtual serial port. Reading short messages works OK, but reading 4096 bytes fails, returning only a few hundred bytes - even with long time-outs. The problem is that the routine CanEvent() returns with the wrong event code. It should return EV_RXCHAR, but it returns 0, even if there are characters in the windows internal buffer. Line 1747 in synaser.pas evaluates to false: Result := (ex and Event) = Event; This leads the program to believe there was a time-out, while in reality there are more data in the buffer. A fix that seems to work is to change line 1791 to: Result := CanEvent(EV_RXCHAR, Timeout) or (WaitingData>0); Has anybody any experience with this problem? Jan Kåre Vatne |
------------------------------------------------------------------------------
_______________________________________________ synalist-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/synalist-public
