-
Notifications
You must be signed in to change notification settings - Fork 0
LiveDataSupport
Note:
This wiki source was generated from a [[DocBook]] file.
Instead of modifying the wiki text you might prefer to
edit the original [[DocBook]] file, because otherwise your
wiki text changes could later be overridden when the
wiki text is re-generated from the [[DocBook]] file.
There are at this time three libraries for accessing live data:
- DAL: This library was developed to support all data types, narrow PV-type access as well as wide object-type access, for EPICS as well as other control system network protocols. It is used by SDS.
- utility.pv: This smaller library was developed to support PV-type access for the data types needed by generic control system tools. It is used by the EPICS PV Tree, PV Table, Data Browser, BOY, (BEAUTY) Archive Engine, (BEAST) Alarm Server.
- pvmanager: This new API supports PV-type access but also handles aggregation and threading.
All libraries are fundamentally plug-able as described in the following where utility.pv is used as an example.
The plugin org.csstudio.utility.pv defines an interface
for accessing live control system data.
The archive engine for example uses that library for subscribing to value updates
from PVs that you want to archive.
The utility.pv plugin does not, however, contain any implementation. Instead,
it defines an Eclipse Extension Point that allows other plugins to provide
pluggable implementations. The plugin org.csstudio.utility.pv.epics
implements live data access based on EPICS Channel Access Version 3.
The plugin org.csstudio.utility.pv.simu implements simulated
PVs like sim://ramp.
This way, one can build an archive engine that supports EPICS, or EPICS and simulated PVs,
or only simulated PVs by simply including the desired plugins. There is no need to
change the actual archive engine code at all.
While this modular approach is very flexible, there can be one disadvantage:
The archive engine code for example only depends on org.csstudio.utility.pv,
the definition of the API for accessing live data. When bundling the archive engine code
into a product, this plugin must be included. The implementing plugins like
org.csstudio.utility.pv.epics are optional, allowing you to build
an archive engine that does not interface to EPICS but another network protocol
of your choice. If you fail to include any implementing plugins,
the product will built without errors but later issue runtime error messages
No extensions to org.csstudio.utility.pv.pvfactory found
This error means: The org.csstudio.utility.pv could not locate any
implementation, no factory classes for creating actual live data PVs.
You need to include at least one implementing plugin like org.csstudio.utility.pv.epics
or org.csstudio.utility.pv.simu.