On 06/09/17 19:30, Bo Berglund wrote:

Where could I be losing incoming serial data?

FTcpComm.IOHandler.ReadBytes(Buf, -1, false);
..
  SerWrite(FComH, Buf[0], Length(Buf));

SerWrite() returns the actual number of bytes it's written, which could be anywhere from the number passed as the parameter down to zero (if hardware handshaking's being used at a lower level). An intermediate value would indicate that a buffer's full somewhere, and that you should adjust your source address and length and have another shot.

TCP is a stream protocol and you can't make any assumptions about the amount of data you get in one call. It's not reasonable to assume that buffers for serial comms are limitless, 2K is entirely reasonable to support most serial comms protocols or an 80x25 screen.

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to