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  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: SOAP device communication.
From: Peter Milne <[email protected]>
To: Scott Baily <[email protected]>
Cc: EPICS Tech-Talk <[email protected]>
Date: Sat, 18 Jun 2011 06:23:31 +0800
On Sat, Jun 18, 2011 at 5:12 AM, J. Lewis Muir <[email protected]> wrote:
> On 6/17/11 3:44 PM, Scott Baily wrote:
>> I would like to have an IOC talk to hardware that communicates
>> using SOAP.  In theory, I could setup an appropriate protocol
>> file for Streamdevice and use a raw TCP connection to port 80.
>> Has anyone done this?  Is there a better method?
>
> Hi, Scott.
>
> If you can get that to work with your particular device, that
> may be the easiest solution.  I've done something similar just
> using asyn records to query readings from a temperature and
> humidity sensor via HTTP.
>
> A better method, but more work, would be to actually use a SOAP
> library on the IOC to communicate with the device.  Since SOAP
> uses XML, you would need an XML parser which would typically be
> included with or used by your SOAP library.  With your
> StreamDevice approach, you are really just doing pattern
> matching which is likely to work with your particular device,
> but could fail given a different device implementing the same
> API (e.g. XML allows whitespace characters in lots of places and
> one device could place them differently than another).
>
> While not perfect, in most situations I'd probably do something
> like what you are thinking with StreamDevice (or asyn records).
>
> Lewis
>

Hi Scott

Decoding a SOAP document by parsing the characters may be hard work.
I'd echo Lewis and say use an XML parser,  actually go one step
further and use a SOAP package like gSOAP to write a client app that
talks to the service. Two advantages to this (apart from portability,
above), it's easy to test and debug a standalone app, and you can then
choose a simple fixed output format that would let you easily parse
the info in EPICS. I mention gSOAP because it's C++, compiles down to
a small binary and we've used it successfully on relatively low power
hardware.

/Peter


References:
SOAP device communication. Scott Baily
Re: SOAP device communication. J. Lewis Muir

Navigate by Date:
Prev: Re: SOAP device communication. J. Lewis Muir
Next: RE: AreaDetector: Prosilica camera on different subnet? Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: SOAP device communication. J. Lewis Muir
Next: Re: SOAP device communication. Dirk Zimoch
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·