Hi Iain,
Is this a TCP port or a UDP port?
What arguments did you pass to drvAsynIPPortConfigure? Did you leave the noProcessEos flag at the default of 0, or did you set it to 1? You should leave it at 0. This
may seem counterintuitive, since you are presumably not setting an input EOS string for the binary payload data. However, the asynInterposeEos does not just do EOS processing, it also does the buffering required to read a specific number of input bytes when
that data might span multiple network packets.
Mark
From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of
Iain Marcuson via Tech-talk
Sent: Tuesday, March 30, 2021 12:48 PM
To: tech-talk at aps.anl.gov
Subject: Asyn Stopping Transfer Short
I am running an AreaDetector program based off of Mythen. The protocol is for the IOC to listen to a socket, first reading two headers, then the payload. The headers appear to be read correctly, as the reported image size and byte count
are correct. However, the IOC usually doesn’t read the requested number of bytes; the number seems random, and on one occasion a full frame was read. However, the return value and EOM value from asynOctetSyncIO are zero for the first payload transaction.
Future reads return a timeout, as corrupted headers result in large reads that are not met by the data source. Is there a buffer option or similar I am missing?
Iain Marcuson
Software Engineer, Sydor Technologies
585.278.1168 |
www.SydorTechnologies.com
Skype:
iain.marcuson at sydorinstruments.com
This message has been scanned for malware by Forcepoint.
www.forcepoint.com