Chapter 20. Access to Data

Table of Contents

Live Data

CSS code uses plug-able libraries for accessing data.

Live Data

There are at this time three libraries for accessing live data:

  1. 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.
  2. 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.
  3. 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.