Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Pds::Epics Namespace Reference.

EPICS (Experimental Physics and Industrial Control System) is used for hardware control and readout of hardware status, values etc. These are called process variables (PV). Pdsdata contains a package that holds the epics classes needed to read the process variables from the xtc file. This is not even a complete documentation of these classes, as it would be unneccesarily detailed. Here we aim just to include the main ingredients and what the user need to know to extract the data.

The following classes, typedefs and variables are The following epics-related classes are not part of Epics namespace:

...

Class EpicsPvHeader

Public attributes:

Code Block
struct  	epicsTimeStamp
struct  	dbr_time_string
struct  	dbr_time_short
struct  	dbr_time_float
struct  	dbr_time_enum
struct  	dbr_time_char
struct  	dbr_time_long
struct  	dbr_time_double
struct  	dbr_sts_string
struct  	dbr_ctrl_int
struct  	dbr_ctrl_short
struct  	dbr_ctrl_float
struct  	dbr_ctrl_enum
struct  	dbr_ctrl_char
struct  	dbr_ctrl_long
struct  	dbr_ctrl_double

Typedefs

Code Block

typedef char 	short int iPvId              //  process variable ID
   short int iDbrType           //  Epics Data Type
   short int iNumElements       //  epicsInt8
typedefSize unsignedof PV Array

Public Member Functions:

Code Block

char 	   EpicsPvHeader( short int iPvId1, short int iDbrType1, short int iNumElements1 ) :
  epicsUInt8
typedef short 	              iPvId(iPvId1),          epicsInt16
typedef unsigned short 	            //  process variable epicsUInt16ID
typedef epicsUInt16 	                epicsEnum16
typedef int 	iDbrType(iDbrType1),                   //  Epics Data Type
   epicsInt32
typedef unsigned 	             iNumElements(iNumElements1)  {} epicsUInt32
typedef float 	     //  Size of PV Array

    int printPv() const;

Public Member Functions:

Code Block

    static void* operator  epicsFloat32
typedef double 	new(size_t size, char* p)     { return p; }
    // Disable ordinary (non-placement) new: only placement new and memory mapped objects are epicsFloat64allowed
typedef unsigned long 	 // Disable placement delete: Not allow to delete memory mapped objects

Class EpicsPvCtrlHeader

Public attributes:

Code Block

char     epicsIndex
typedef epicsInt32  sPvName[_iMaxPvNameLength];

Public Member Functions:

Code Block

	     // Constructor
    EpicsPvCtrlHeader( short int iPvId1,
   epicsStatus
typedef char 	                  short int iDbrType1,
    epicsOldString [MAX_STRING_SIZE]
typedef Pds::Epics::epicsTimeStamp 	epicsTimeStamp
typedef epicsOldString 	              short  dbr_string_t
typedef epicsUInt8 	int iNumElements1,
                   dbr_char_t
typedef epicsInt16 	  const char sPvName1[] )
           dbr_short_t
typedef epicsUInt16 	       :  EpicsPvHeader( iPvId1, iDbrType1, iNumElements1)

Class EpicsPvCtrl

Inherits from EpicsPvCtrlHeader and EpicsPvBase

Public Attributes:

Code Block

  int printPv() const;
  enum { iDbrCtrlType = EpicsDbrTools::DbrTypeTraits<iDbrType1>::iDbrCtrlType };

Public Member Functions

Code Block

 dbr_enum_t
typedef epicsInt32 	        // Constructor
    EpicsPvCtrl( short  dbr_long_t
typedef epicsFloat32 	int iPvId1,
                 short  dbr_float_t
typedef epicsFloat64 	int iNumElements1,
                 const  dbr_double_t
typedef epicsUInt16 	char sPvName1[],
                  dbr_put_ackt_t
typedef epicsUInt16 	void* pEpicsDataValue1,
                 int*  dbr_put_acks_t
typedef epicsOldString 	piSize = NULL )
           :  EpicsPvCtrlHeader(iPvId1, iDbrCtrlType,  dbr_stsack_string_t
typedef epicsOldString 	iNumElements1, sPvName1),
              EpicsPvBase( *(EpicsPvBase*)   dbr_class_name_t

...

pEpicsDataValue1 )

Class EpicsPvTime

Inherits from EpicsPvHeader and EpicsPvBase

Public Attributes:

Code Block
const  char * enum { iDbrTimeType = EpicsDbrTools::DbrTypeTraits<iDbrType1>::iDbrTimeType };
    typedef typename EpicsDbrTools::DbrTypeTraits<iDbrType1>::TDbrOrg TDbrOrg;

Public Member Functions:

Code Block
	epicsAlarmSeverityStrings [ALARM_NSEV]
const char * 	epicsAlarmConditionStrings [ALARM_NSTATUS]
const char * 	dbr_text [35]
const char * 	epicsAlarmSeverityStrings [ALARM_NSEV]
Initial value:
{
    "NO_ALARM",
    "MINOR" EpicsPvTime( short int iPvId1,
    "MAJOR",
    "INVALID",
}

const char * 	epicsAlarmConditionStrings [ALARM_NSTATUS]
Initial value:
{
    "NO_ALARM",
   int "READ"iNumElements1,
    "WRITE",
    "HIHI",
    "HIGH",
    "LOLO",
    "LOW"void* pEpicsDataValue1,
    "STATE",
    "COS",
    "COMM",
    "TIMEOUT",
  int* piSize "HWLIMIT",
= NULL )
  "CALC",
    "SCAN",
:  EpicsPvHeader( iPvId1, "LINK"iDbrTimeType,
 iNumElements1   "SOFT"),
    "BAD_SUB",
    "UDF",
 EpicsPvBase( *(EpicsPvBase*)  "DISABLE",pEpicsDataValue1 )

    "SIMM",
    "READ_ACCESS",
    "WRITE_ACCESS",
}
int printPv() const;

Pds::Epics Namespace Reference.

EPICS (Experimental Physics and Industrial Control System) is used for hardware control and readout of hardware status, values etc. These are called process variables (PV). Pdsdata contains a package that holds the epics classes needed to read the process variables from the xtc file. This is not even a complete documentation of these classes, as it would be unneccesarily detailed. Here we aim just to include the main ingredients and what the user need to know to extract the data.

The following classes, typedefs and variables are The following epics-related classes are not part of Epics namespace:

Class EpicsPvHeader

Public attributes:

Classes

Code Block
struct  	epicsTimeStamp
struct  	dbr_time_string
struct  	dbr_time_short
struct  	dbr_time_float
struct  	dbr_time_enum
struct  	dbr_time_char
struct  	dbr_time_long
struct  	dbr_time_double
struct  	dbr_sts_string
struct  	dbr_ctrl_int
struct  	dbr_ctrl_short
struct  	dbr_ctrl_float
struct  	dbr_ctrl_enum
struct  	dbr_ctrl_char
struct  	dbr_ctrl_long
struct  	dbr_ctrl_double

Typedefs

Code Block

typedef char 	int iPvId              //  process variable ID
   short int iDbrType           //  Epics Data Type
   short int iNumElements       //epicsInt8
typedef unsigned Sizechar of	 PV Array

Public Member Functions:

Code Block

   EpicsPvHeader( short int iPvId1, short int iDbrType1, short int iNumElements1 ) :epicsUInt8
typedef short 	                iPvId(iPvId1),        epicsInt16
typedef unsigned short 	              //  process variable IDepicsUInt16
typedef epicsUInt16 	                iDbrType(iDbrType1),  epicsEnum16
typedef int 	                 //  Epics Data Type
   epicsInt32
typedef unsigned 	             iNumElements(iNumElements1)  {} epicsUInt32
typedef float 	     //  Size of PV Array

    int printPv() const;

Public Member Functions:

Code Block

    static void* operator new(size_t size, char* p) epicsFloat32
typedef double 	     { return p; }
    // Disable ordinary (non-placement) new: only placement new and memory mapped objects are allowedepicsFloat64
typedef unsigned long 	 // Disable placement delete: Not allow to delete memory mapped objects

Class EpicsPvCtrlHeader

Public attributes:

Code Block

char        sPvName[_iMaxPvNameLength];

Public Member Functions:

Code Block

    // Constructor
epicsIndex
typedef epicsInt32 	       EpicsPvCtrlHeader( short int iPvId1, 
     epicsStatus
typedef char 	                short int iDbrType1, 
     epicsOldString [MAX_STRING_SIZE]
typedef Pds::Epics::epicsTimeStamp 	epicsTimeStamp
typedef epicsOldString 	             short int iNumElements1, dbr_string_t
typedef epicsUInt8 	                dbr_char_t
typedef epicsInt16 	   const char sPvName1[] ) 
         dbr_short_t
typedef epicsUInt16 	         :  EpicsPvHeader( iPvId1, iDbrType1, iNumElements1)

Class EpicsPvCtrl

Inherits from EpicsPvCtrlHeader and EpicsPvBase

Public Attributes:

Code Block

  int printPv() const;
  enum { iDbrCtrlType = EpicsDbrTools::DbrTypeTraits<iDbrType1>::iDbrCtrlType };

Public Member Functions

Code Block

  dbr_enum_t
typedef epicsInt32 	       // Constructor
    EpicsPvCtrl( short int iPvId1, dbr_long_t
typedef epicsFloat32 	               short int iNumElements1, 
   dbr_float_t
typedef epicsFloat64 	               const char sPvName1[], 
   dbr_double_t
typedef epicsUInt16 	               void* pEpicsDataValue1, 
   dbr_put_ackt_t
typedef epicsUInt16 	               int* piSize = NULL ) 
 dbr_put_acks_t
typedef epicsOldString 	             :  EpicsPvCtrlHeader(iPvId1, iDbrCtrlType, iNumElements1, sPvName1),
 dbr_stsack_string_t
typedef epicsOldString 	              EpicsPvBase( *(EpicsPvBase*) pEpicsDataValue1 )

Class EpicsPvTime

Inherits from EpicsPvHeader and EpicsPvBase

Public Attributes:

 dbr_class_name_t

Variables

Code Block
const char *  enum { iDbrTimeType = EpicsDbrTools::DbrTypeTraits<iDbrType1>::iDbrTimeType };
    typedef typename EpicsDbrTools::DbrTypeTraits<iDbrType1>::TDbrOrg TDbrOrg;

Public Member Functions:

...

	epicsAlarmSeverityStrings [ALARM_NSEV]
const char * 	epicsAlarmConditionStrings [ALARM_NSTATUS]
const char * 	dbr_text [35]
const char * 	epicsAlarmSeverityStrings [ALARM_NSEV]
Initial value:
{
    "NO_ALARM",
    "MINOR",
    "MAJOR",
    "INVALID",
}

const char * 	epicsAlarmConditionStrings [ALARM_NSTATUS]
Initial value:
{
    "NO_ALARM",
    "READ",
    "WRITE",
    "HIHI",
    "HIGH",
    "LOLO",
    "LOW",
    "STATE",
    "COS",
    "COMM",
    "TIMEOUT",
    "HWLIMIT",
    "CALC",
    "SCAN",
    "LINK",
    "SOFT",
    "BAD_SUB",
    "UDF",
    "DISABLE",
    "SIMM",
    "READ_ACCESS",
    "WRITE_ACCESS",
}

Pds::EpicsXtcSettings Namespace

...