Experimental Physics and Industrial Control System
|
On 04/02/2018 04:29 PM, renato sanhueza
wrote:
Thanks for all your answers, you solved my doubt.
As Steven and Key noted, the client needs additional information
to be able to interpret the remote interface. Fortunately this
is not the responsibility of the middleware (i.e. EPICS).
EPICS can implement dynamic communication for monitoring as
mentioned by Marty:
For pvAccess the client can get the introspection interface
for the pvStructure associated with a channel.
It is obtained via a call to getField()
It can do this only after it has connected to the channel.
If an empty string is specified for subField then what the
client receives is the introspection interface
for the top level PVStructure for the channel.
The client can then use this introspection interface to
compose a request string for creating a channelGet, ...,
monitor.
My final questions regarding this topic are:
1. Can I use this introspection interface with C++, Java
and Python?
In C++ and Java yes.
In pvaPy I took a quick look and did not see code that implements
it.
I will guess that it would not be hard to add but I will leave this
for someone else to answer.
2. Can I use this introspection interface to retrieve the
name of a service and its parameter list to compose a RPC
during runtime by following Marty's approach?
I suspect that the answer for pvAccess itself is no.
But even if the answer is no a channelRPC service can implement it's
own query service that describes itself.
But it must describe itself via pvData.
Marty
For example, In a program that I made I used static RPC by
hardcoding the name of the service and matching the parameters
required (a PVStructure) during development time,
RPCClientImpl client = new RPCClientImpl("control");
...
client.request(pvTelescopeParameters, REQUEST_TIMEOUT);
I understand that using static communication is more
straightforward and easy for the developers and will probably
be used the 90% of the time. So my question is more
theoretical:
Can a client discover the service name ( control) and
the parameters required to compose the RPC during runtime
(dynamic RPC)?
Thanks again for the help, Now I will check the example
sent by Mark,
Best regards,
Renato
|
- Replies:
- Re: question about pvAccess monitor Johnson, Andrew N.
- RE: question about pvAccess monitor [email protected]
- References:
- question about pvAccess monitor renato sanhueza
- Re: question about pvAccess monitor Johnson, Andrew N.
- Re: question about pvAccess monitor Mark Rivers
- Re: question about pvAccess monitor Johnson, Andrew N.
- Re: question about pvAccess monitor renato sanhueza
- Re: question about pvAccess monitor Marty Kraimer
- Re: question about pvAccess monitor renato sanhueza
- Re: question about pvAccess monitor Hartman, Steven M.
- Re: question about pvAccess monitor Kasemir, Kay
- Re: question about pvAccess monitor renato sanhueza
- Navigate by Date:
- Prev:
Simple channel access write program within Qt Abdalla Ahmad
- Next:
motor card not exist l123173
- 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: question about pvAccess monitor renato sanhueza
- Next:
Re: question about pvAccess monitor Johnson, Andrew N.
- 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
|
ANJ, 05 Apr 2018 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
·
Search
·
EPICS V4
·
IRMIS
·
Talk
·
Bugs
·
Documents
·
Links
·
Licensing
·
|