Presentation is loading. Please wait.

Presentation is loading. Please wait.

PvData,pvAccess,javaIOC,pvService Status EPICS Meeting Aix-en-Provence, France Marty Kraimer, Guobao Shen, and Matej Sekoranja.

Similar presentations


Presentation on theme: "PvData,pvAccess,javaIOC,pvService Status EPICS Meeting Aix-en-Provence, France Marty Kraimer, Guobao Shen, and Matej Sekoranja."— Presentation transcript:

1 pvData,pvAccess,javaIOC,pvService Status EPICS Meeting Aix-en-Provence, France Marty Kraimer, Guobao Shen, and Matej Sekoranja

2 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService2 Outline of Talk What are pvData, pvAccess, javaIOC? pvService – Services implemented via pvData, etc. Changes since ICALEPCS 2009 EPICS meeting: – pvData – pvAccess Future changes.

3 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService3 PvData, pvAccess, javaIOC pvData  Full support for memory resident structured data.  Record. Has a name. Has a top level structure.  Structures. standard: enumerated,alarm, timeStamp, display, control. extensible – can be application specific. pvAccess (Formerly named CAJv4). – Network support for pvData. javaIOC – Record Scanning – Periodic and Event. – support – no distinction between record and device support. any field can optionally have associated support. standard: alarm, timeStamp, linearConvert, digital, etc. extensible – Can be used wherever appropriate.

4 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService4 pvService Being Developed to support NSLSII High Level Applications. – Guobao Shen and Nikolay Malitsky developed prototypes. EPICS V3 via array of char. – use char array as byte stream. – marshal, un-marshal at each end. Use pvData/pvAccess/javaIOC – This talk. – Guobao developed prototypes for: Model Simulator. – Support for code like Elegant and Tracy. – Request and result via pvData/pvAccess. Channel Finder. – Find channel names and properties. – For example all BPMs in sectors 2 and 3. Gather – get/put/monitor a set of pvs as an array. – Next few slides discuss the channel finder and gather.

5 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService5 Channel Finder Client makes a request with a search string: prop=exp&prop=exp... – prop – Name of property. – exp – A regular expression as determined by the database. – & Separator between search patterns. As a result of the request the client receives an array of RequestResult public class ChannelProperty { public String name; public String value; } public class RequestResult { public String name; public ChannelProperty[] property; } The channel finder is implemented via a javaIOC record and support. – The support accepts the request. – Queries a relational database. Code contributed by Ralph Lange. – Creates A PVStructure that holds the result. NOTE: Will be changed to return array of names and array of properties. – Closer to what client wants and more efficient.

6 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService6 Gather Access to a set of V3 records as an array. – Get, put, monitor. – Always get/put value. For get/monitor also timeStamp and severity. – For each of get, put, monitor a single create record instance. Each request creates a gather record instance. – Record instance is installed in PVDatabase. – The record implements the functionality. – At present prototypes for get and put have been implemented.

7 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService7 The client makes a request to createGather.  The client sends createGather. an array of channel names. a name for the record to create. createGather.  Creates a record that has a top level structure like above.  Initializes the record and adds it to the database. The client.  Connects to the newly created record.  Creates a ChannelGet with an option to process.  Issues get requests. Gather Get

8 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService8 Support for Gather Get The support for gatherGet is standard support as defined by javaIOC. When support is started it connects to each of the V3 records. – Waits until it has connected to all records. – If connection fails : Start fails. Record will not be added to the PVDatabase. Not sure this is desired semantics. When process is called it (via another thread): – Issues a Channel Access get request for each channel. – Waits for all gets to complete. – Puts the values into the value array. – If any alarm severity changes: puts the result into the alarmSeverity array. AlarmSeverity array will be sent to client.

9 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService9 Gather Continued Gather Put is similar to Gather Get. – Does put instead of get. – Does not provide alarmServerity array. Performance for Get with 1000 channels. All times in seconds. – Create. 3.4 when record created. 0.15 if record exists. Should be 1.4. (install needs improvement). – Get..033 seconds minimum,.082 maximum. Performance for Put with 1000 channels. All times in seconds. – Create. 2.4 when record created. 0.16 if record exists. – Put..010 seconds minimum,.018 maximum. NOTE put not putCallback. Change?

10 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService10 Example to combine channelFinder and Gather

11 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService11 Gather Remaining Tasks Both get and put are only prototypes. Must develop prototype for monitor. For all: – Lifetime for created records. Some Thoughts. Default will be to delete after no clients connected. Option to persist until manually deleted. “Golden Orbit”. – Options for monitor. Monitor event – When any channel gets monitor. – Only when all channels get monitor. – Other? – Support for hardware event system. Coordinated gets, monitors, puts. See next for changes to pvData, pvAccess, javaIOC.

12 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService12 Changes Since ICALEPCS2009 pvData – Support for array of structures. Each element has same introspection interface. Treated like a leaf field. See me off-line for details. PvAccess – Efficient usage of network packets. Small messages automatically share single network packet. Big structures, arrays automatically span multiple packets. – Monitor options per field instead of just per record. Channel.createMonitor interface change. Other create interfaces also changed. – ChannelRPC is new feature. Like putProcessGet except that different structure returned. javaIOC – Only minor changes.

13 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService13 Planned Changes to pvData/pvAccess Allow client to set array capacity and length on server. – Currently a client can not make a direct request. Server will automatically extend capacity and length. But client can not ask either to be made smaller. – Already have support for ChannelArray. Allows a client to access a sub-array. Will be extended to allow client to set capacity and length. Allow client to determine immutable fields. – Will provide a “BitSet mutable”. Only to client connect methods. Immutable normally only set during field creation. Final agreement of definitions of standard structures. – enumerated – probably OK. – timeStamp – probably OK. – alarm – controversial. Must be decided soon. – display – probably OK. – control – probably OK.

14 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService14 pvService considerations Previously. – Emphasize performance during process rather than creation. – Record instances with small total number of fields. – on-line creation and initialization of new records infrequent. Now. – For gather creation and initialization of new records common. – Really big records, e.g. channelFinder for 1000 channel names. – Requires C++ in addition to Java: pvData, pvAccess. Plans. – Optimize record creation and initialization. – Start soon (by end of summer) on C++ implementation.

15 Aix-en-Provence, France, June 2010 pvData,pvAccess,javaIOC,pvService15 What about portDriver PortDriver is the javaIOC version of asynDriver. – It has been implemented and some testing done. – It has almost no drivers for accessing hardware. – Serial support has been started but is only prototype. Needs LOTS of work. pvService has priority for the next several months.


Download ppt "PvData,pvAccess,javaIOC,pvService Status EPICS Meeting Aix-en-Provence, France Marty Kraimer, Guobao Shen, and Matej Sekoranja."

Similar presentations


Ads by Google