Hi Mark
Thanks for the information. Unfortunately I cannot predict the response length, I can predict the XML structure but not what is in the XML elements. I am using drvAsynIP so I can try that noProcessEos approach you mentioned. I'll take a look at that Newport driver.
Thanks again
Lee
-----Original Message-----
From: Mark Rivers <[email protected]>
Sent: 10 December 2019 14:05
To: Hudson, Lee (DLSLtd,RAL,LSCI) <[email protected]>
Cc: tech-talk <[email protected]>
Subject: Re: Custom asyn input EOS
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
- References:
- Custom asyn input EOS Hudson, Lee (DLSLtd,RAL,LSCI) via Tech-talk
- Re: Custom asyn input EOS Mark Rivers via Tech-talk
- Navigate by Date:
- Prev:
Re: pco Camera USB and IEEE interface Mark Rivers via Tech-talk
- Next:
P4P release 3.4.1, now with gateway Michael Davidsaver 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
<2019>
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Custom asyn input EOS Mark Rivers via Tech-talk
- Next:
pco Camera USB and IEEE interface Sintschuk, Michael 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
<2019>
2020
2021
2022
2023
2024
|