EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Custom asyn input EOS
From: Mark Rivers via Tech-talk <[email protected]>
To: "Hudson, Lee (DLSLtd,RAL,LSCI)" <[email protected]>
Cc: tech-talk <[email protected]>
Date: Tue, 10 Dec 2019 14:04:54 +0000
Hi Lee,


You are correct that that asyn EOS handling is limited to 2 characters.


There are potentially a couple of ways to handle this.


Can you predict the number of characters that the device will send back?  If so then if you request exactly this number of characters in your call to asynOctet->read() it will not timeout it will just return that many characters as soon as they are available.


If the number of characters to be returned cannot be predicted then there is another potential solution.  What asyn driver are you using, drvAsynIP?  If so then create the port with the final noProcessEos argument set to 1.  This will also prevent timeouts, it will simply send you the number of characters available immediately when you call asynOctet->read().  Your driver then needs to loop reading until you find the desired terminator.  If you want an example of this look at the asynOctwtSocket.cpp code in the motor Newport directory.  The XPS sends ",EndOfAPI" as its terminator, and this code loops searching for that.


Mark



________________________________
From: Tech-talk <[email protected]> on behalf of Hudson, Lee (DLSLtd,RAL,LSCI) via Tech-talk <[email protected]>
Sent: Tuesday, December 10, 2019 2:55 AM
To: [email protected]
Subject: Custom asyn input EOS


Hi,

I have a motion controller I'm writing a driver for and it communicates by sending XML with no line terminators. This is proving to be a pain as any asyn reads time out. Luckily I know exactly what XML structure I expect back as the controller only uses this mechanism to respond to requests and it will always respond using the same structure the request was sent in. I would like to be able to set the input eos to the last element in the XML structure, eg, </sequencer_prog>. I tried to use the method asynOctetSyncIO->setInputEos() as this has an EOS string and length as parameters but looking at the implementation in asynInterposeEos.c I can see that the length of the EOS given is used in a switch statement and anything greater than 2 is invalid. Is there any way to specify a custom EOS of any length?

Thanks
Lee





--

This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom


Replies:
RE: Custom asyn input EOS Hudson, Lee (DLSLtd,RAL,LSCI) via Tech-talk
References:
Custom asyn input EOS Hudson, Lee (DLSLtd,RAL,LSCI) via Tech-talk

Navigate by Date:
Prev: Re: pco Camera USB and IEEE interface Diego Omitto via Tech-talk
Next: Re: pco Camera USB and IEEE interface Mark Rivers via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Custom asyn input EOS Hudson, Lee (DLSLtd,RAL,LSCI) via Tech-talk
Next: RE: Custom asyn input EOS Hudson, Lee (DLSLtd,RAL,LSCI) via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
ANJ, 10 Dec 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·