Existing Classes

CS-Framework

16 February, 2011 - 11:03 AM


This table contains a list of all classes, where authors and/or maintainers have agreed to publish the name, version and description.


The aim of this list is to make information on all classes within the CS-Framework available, even if a class has not been published as a package on Sourceforge.


If case somebody is interested in using a class listed here, he/she should contact the maintainer of the class. In case the maintainer is not given in the class description, please contact the author.
class version description
4WinsClient.lvlib 1.0.0.0 This is the constructor of the class 4WinsClient.
It implemets the Client for the game "4 Wins".

This Class inherits from BaseProcess, BaseSM and BaseGUI.

author: Holger Brand, GSI
maintainer: Holger Brand, H.Brand@gsi.de
history: 6-FEB-2007 Update to CS 3.1
12-SEP-2006 Update to CS 3.0
4WinsServer.lvlib 1.0.0.0 This is the constructor of the class 4WinsServer.
It implemets the Server for the game "4 Wins".

This Class inherits from BaseProcess.

author: Holger Brand, GSI
maintainer: Holger Brand, GSI, H.Brand@gsi.de;
history: 6-FEB-2007 Upgrade to CS 3.1
6-SEP-2006 Upgrade to CS 3.0
AFGBase.lvlib 1.13.0.0 This is the base class for an arbitrary function generator. It provides basic events, some example methods and publishes a lot of services "OBJECTNAME_SERVICENAME". This class can be used as parent class for classes that implemented a specific arbitrary function generator.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
AFGBaseGUI.lvlib 1.13.0.0 A dedicated GUI for the AFGBase class. It can be used by all classes that have inherited from the AFGBase class.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
AG33XXX.lvlib 0.2.0.0 Class supporting for arbitrary function generators AG33XXX from Agilent. This class supports all devices compatible with the agilent_33xxx_series instrument driver by National Instruments. However, only very basic features of the device are supported. The device can be connected via GPIB, TCP/IP or USB.

Remark: Since there is a new instrument driver for the device by NI and we wanted to make use of the AFGBase class, we basically wrote a new class for the device. This class replaces the AG33240 class that was existing up to CS version 3.0.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
BaseGUI.lvlib 3.21.0.0 This is the base class for a GUI class. It provides methods to start a GUI. By executing the constructor, a front panel will be created from VI template (*.vit). That template can have any name that must be passed to the "data" control of the constructor of THIS class (data type string). The VI template must provide a control named "object ref". During instantiation, "object ref" will be set to the reference to the object.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
BaseProcess.lvlib 3.21.0.0 The typical base class used for device processes. (Almost) all classes of the framework will inherit and be direct children of this class.

The BaseProcess class provides the following:
- "Call" mechanism. Alls events except notification are buffered.
-- synchronous call: caller waits for answer from callee
-- asynchronous call: caller does not wait for an answer from callee. The answer is sent to a specified object
-- simple call: callee will not answer
-- calls can be received via message queue or notification
- event thread: handles events defined in activate and calls method ProcCases of THIS class.
- periodic action thread: handles periodic action and calls method ProcPeriodic of THIS class.

If "data in" is empty, the constructor tries to retrieve attribute data from the data base. In case "data in" is not empty, the constructor assumes that "data in" contains attribute data of THIS class flattened to string (this feature should only be used in the "local" LabVIEW execution system). In case "data in" yields "N/A" the constructor does not read attribute data from the database and will just initialize the attribute data of THIS class with default values.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
BaseSM.lvlib 3.21.0.0 This is the base class for a state machine.

The BaseSM class provides a thread for running a Havel state machine. The states, entry and exit actions are defined in the method ProcState of THIS class. The ProcState method of THIS class (BaseSM or child) is called from the method "main".

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
Brooks0154.lvlib 1.0.0.0 This is the constructor of the Brooks0154 class. This class is designed to control Brooks Instrument Mass Flow Controller via the Read Out and Contol Unit 0154. The communication is handled over the RS232 serial interface.

The database entry "Interface0" specifies wich COM port to use.
The database entry "Special0": 0: Do not configure with defaults; 1: Configure with defaults.
The database entry "Address n": Alias name of channel n.

author: Thomas Rechel
maintainer: H.Brand@gsi.de
Brooks0154GUI.lvlib 1.0.0.0 This is the constructor of the Brooks0154GUI class.
It provides a user interface for an object of the Brooks0154 device class to controll the Brooks Instrument Read Out and Controll Unit 0154.
Several instances of this class can be connected to one device object.

The associated device object must be specified as constructor parameter. (Object item of GOGFrontPanel.i attribute type.

author: H.Brand@gsi.de
maintainer: H.Brand@gsi.de
CAEN_HVBoard.lvlib 1.1.0.0 This is a class for the CAEN HV Boards for the Universal Multichannel Power Supply System.

It supports currently following models: A1511B, A1519B, A1733, A1733B, A1833, A1833B

The commincation to the device is established via DIM - NI-DSC - OPC.

Here is our list of EU strings:

"Volt" for the voltage items
"Watt" for the power items
"Celsius" for temperature items
"Amp." for the current items
"Hz" for the frequency items
"Bar" for pressure items
"Volt/sec" for Ramp/Up Ramp/Down items
"Sec." for the time items
"rpm" for the fan items
"count" to represent a binary value
"None" for scalar items

for each list we associate the followinf scale:

"K" for KILO
"M" for MEGA
"G" for GIGA
"T" for TERA
"m" for MILLI
"u" for MICRO
"n" for NANO
"p" for PICO
"" elsewhere

The units (EU Strings) are constant so i.e. if an item is represented as a uAmp it's scale will be always represented as uAmp for each values it can returns ( t0= 10 uAmp t1=10000 uAmp).

Best Regards,
Alberto Dimaio, CAEN

author: Holger Brand, GSI
maintainer: H.Brand@gsi.de
CAEN_HVBoardGUI.lvlib 1.0.0.0 This is the constructor of this class. It is under construction

It will display system paramter of a CAEN HV Board.

author: Holger Brand
maintainer: H.Brand@gsi.de
history:
CAEN_HVChannel.lvlib 1.1.0.0 This is a class for the CAEN HV Channels for the Universal Multichannel Power Supply System.

The commincation to the device is established via DIM - NI-DSC - OPC.
Present users of this class still use the LabVIEW DSC as a separate process as a gateway between DIM and OPC. That process is a CS system based on version 3.00 with the CSDSC_SCADA package version 3.00 included. An example xml file that can be imported into the DSCIntProc class of CS version 3.00 is included as an example.

Here is our list of EU strings:

"Volt" for the voltage items
"Watt" for the power items
"Celsius" for temperature items
"Amp." for the current items
"Hz" for the frequency items
"Bar" for pressure items
"Volt/sec" for Ramp/Up Ramp/Down items
"Sec." for the time items
"rpm" for the fan items
"count" to represent a binary value
"None" for scalar items

for each list we associate the followinf scale:

"K" for KILO
"M" for MEGA
"G" for GIGA
"T" for TERA
"m" for MILLI
"u" for MICRO
"n" for NANO
"p" for PICO
"" elsewhere

The units (EU Strings) are constant so i.e. if an item is represented as a uAmp it's scale will be always represented as uAmp for each values it can returns ( t0= 10 uAmp t1=10000 uAmp).

Best Regards,
Alberto Dimaio, CAEN

author: Holger Brand, GSI
maintainer: H.Brand@gsi.de
CAEN_HVSystem.lvlib 1.1.0.0 This is a class for the CAEN Model SY 1527 Universal Multichannel Power Supply System.

The commincation to the device is established via DIM - NI-DSC - OPC.

here is our list of EU strings:

"Volt" for the voltage items
"Watt" for the power items
"Celsius" for temperature items
"Amp." for the current items
"Hz" for the frequency items
"Bar" for pressure items
"Volt/sec" for Ramp/Up Ramp/Down items
"Sec." for the time items
"rpm" for the fan items
"count" to represent a binary value
"None" for scalar items

for each list we associate the followinf scale:

"K" for KILO
"M" for MEGA
"G" for GIGA
"T" for TERA
"m" for MILLI
"u" for MICRO
"n" for NANO
"p" for PICO
"" elsewhere

The units (EU Strings) are constant so i.e. if an item is represented as a uAmp it's scale will be always represented as uAmp for each values it can returns ( t0= 10 uAmp t1=10000 uAmp).

Best Regards,
Alberto Dimaio, CAEN

author: Holger Brand, GSI
maintainer: H.Brand@gsi.de
CAEN_HVSystemGUI.lvlib 1.0.0.0 This is the constructor of this class. It is under construction

It will display system paramter of a CAEN HV System.

author: Holger Brand
maintainer: H.Brand@gsi.de
history:
CAEObj.lvlib 3.21.0.0 The CS own implementation of a concurrent active event object.

This class provides the following:

- methods for event driven communication (EvtAwait, SendCmd, ...)
- an active thread required for the CS access system

In case unbuffered message events (notifiers) are defined, an object of the NotifierObj class is created for handling these events. The communication between the NotifierObj and the CAEObj is done via buffered message events and direct method calls.

This class may serve a parent class for active objects that do not require the funtionality of the BaseProcess class.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
CSAccessClient.lvlib 3.21.0.0 This class provides a client for object hierarchy trees. An object of this client class connects to a CS Access Server for reserving an object. The client is typically created by objects that have inherited from the CAEObj class. The "data in" of this class contains the reference of the object creating THIS object.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
CSAccessViewer.lvlib 3.21.0.0 This class provides a viewer on object hierarchy trees. An object hierarchy defines dependencies for the reservation mechanism. This class uses the CSAccessClient class.

author: Dietrich Beck
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
CSInstrSim.lvlib 1.0.0.0 This is the constructor of the CSInstrSim class.

This is a class for the Instrument Simulator found on the NI-Web, modified by Brand New Technologies. It is used in the CS course.

author: Holger Brand, GSI
maintainer: Holger Brand, GSI; H.Brand@gsi.de

Last update: 5-FEB-2007 Upgrade to LV 8.20
CSList.lvlib 1.0.0.0 This is the constructor of The CSList class. It handles a list including test steps for a sequencer (instance of CSSeqExec).

The default list path is defined in the constructor's data in.

It is part of the CSSequencer Pakage.

author: Maximilian Kugler
maintainer: H.Brand@gsi.de
history:
CSObj.lvlib 3.21.0.0 The CSObj class is the base class to all other classes. It provides objects and their attribute data. The attribute data can be locked for exclusive access with the help of semaphores. Moreover, it provides a reference to the active front panel of an object.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
CSPopUpMsgBox.lvlib 3.20.0.0 This is the constructor of the CSPopUpMsgBox class.
You can configure up to three buttons (with several actions).

Use the CSPopUpMsgBox.configureButton.vi and the CSPopUpMsgBox.createPopUp.vi for convenient handling.

author: Thomas Rechel
maintainer: H.Brand@gsi.de
history: 15-FEB-2007 Upgrade to CS 3.1, H.Brand@gsi.de
CSSeqControl.lvlib 1.0.0.0 This is the constructor of this class.

This is the CSSequencer Control GUI. It is part of the CSSequencer Pakage.

author: Maximilian Kugler
maintainer: H.Brand@gsi.de
history:
CSSeqExec.lvlib 1.0.0.0 This is the constructor of this class.

This is the class responsible to execute sequences. It is part of the CSSequencer Pakage.

author: Maximilian Kugler
maintainer: H.Brand@gsi.de
history:
CSTimer.lvlib 3.20.0.0 This is the constructor of the CSTimer class.

This class can be used to dispatch events at an absolute time, with a releative delay, periodically or on trigger.

You need to specify the CSTimer properties at construction. Connect the configured CSTimer.i_attrubute as flattened string to data in.

Refer to CSTimer.thread.vit documentation for details.

author: Holger Brand, GSI
maintainer: Holger Brand, GSI
history:
08-FEB-2007 H.Brand@gsi.de Upgraded to CS 3.1
18-NOV-2010 H.Brand@gsi.de Upgraded to CS 3.2
ControllerBase.lvlib 1.13.0.0 Class for "controller objects" of an application layer. Each (sub-)system has an associated controller object. Such an object has a state machine. (Sub-)systems may form a tree-like structure and each controller object calculates its state depending on the state of it's (sub-)controller objects. State changes may result from a "call" (command) that has been sent from a GUI or another controller object that is higher up in the hierarchy. All public methods, that are accessible via a "call", will also propagate to all sub-controllers (except to those, that are ignored...).

Subcontrollers are defined via the database as "Interface" elements.
Devices may be defined via the database as "Address" elements, but this might depend on the actual implementation.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
DAQ_E_mIO_AIO.lvlib 1.16.0.0 This class implements the analog I/O functionality for Multi-IO cards from National Instruments that are base on the DAQmx driver. This class should work with all devices supported by the DAQmx driver and is not limited to E-Series devices.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
DAQ_E_mIO_Cntr.lvlib 1.16.0.0 This class implements the counter functionality Multi-IO cards from National Instruments. This class should work with all devices supported by the DAQmx driver and is not limited to E-Series devices.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
DAQ_E_mIO_CntrGUI.lvlib 1.16.0.0 This is a dedicated user GUI for DAQ_E_mIO_Cntr class. It serves as a front panel for the GeneralObjectGUI.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
DAQ_E_mIO_DIO.lvlib 1.16.0.0 This class implements the digital I/O functionality for Multi-IO cards from National Instruments that are base on the DAQmx driver. It uses one digitial port for writing and another digital port for reading.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
DAQ_E_mIO_Scope.lvlib 1.16.0.0 This class implements a simple scope for Multi-IO cards from National Instruments that are based on the DAQmx driver.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
DAQ_E_mIO_ScopeGUI.lvlib 1.16.0.0 This is a dedicated user GUI for DAQ_E_mIO_Scope class. It serves as a front panel for the GeneralObjectGUI.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
DAQmxMCS.lvlib 1.16.0.0 This class implements a multi channel scaler (MCS) that allows to record events as a function of time. As hardware, an analog Multi-IO device based on the DAQmx driver is used. A digital signal is used for triggering the start of the acquisition. An analog signal is acquired. Event data is obtained by software discrimination of the acquired analog dat.

In addition to the database settings required by the parent class (MCSBase), THIS class requires the range of the analog input channel, the sample rate for the analog channel, the device name, the name of the analog channel being discriminated and a trigger channel. For the assignment of the database entries please have a look at the file DAQmxMCS_mapping.ini.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
DIMHistogramGUI.lvlib 3.20.0.0 It will display DIM numeric array data services or a selection of simple DIM data services as Histogram.

author: Holger Brand
maintainer: H.Brand@gsi.de
history:
2007-04-20 H.Brand@gsi.de, Upgrade to CS 3.1
2010-11-22 H.Brand@gsi.de, Upgrade to CS 3.20
DIMPowerSupply.lvlib 1.13.0.0 Handles powersupplies that are controlled via analog voltages. The values for those voltages are received and sent via DIM.

Typically, The link to the real (hardware) power supply is established via OPC and the connection to OPC is provided by the SCADA backend. For the CS framework, the standard SCADA backend is the LabVIEW DSC module by NI.

A simplified view of the communication is as follows.

(object of )DIMPowerSupply <=> DIM <=> (object of )DSCIntProc <=> LV-DSC module <=> OPC <=> PowerSupply.

In case you use the DSC engine and DSCIntProc as SCADA backend, you need to do the following for each object.
1) connect the DSC engine to the OPC server with two Shared Variables. One for the control channel ("OBJECTNAME_nomOPCValue") and one for the monitor channel ("OBJECTNAME_actOPCValue").
2) Using the "DB and SVCreate" tool, enter the configuration data into the database for that object. Remark: You only need to define the names of those two Shared Variables in the configuration database, if you use a different naming convention than the one described above.
3) Using the option "create SV file" of the "DB and SVCreate" tool, create Shared Variable configuration files in CSV format.
4) Eventually, you would like to edit/change the Shared Varaible configuration file created in the previous step.

author: Frank Herfurth, CERN
maintainer: Frank Herfurth and Dietrich Beck, GSI
DIMTableView.lvlib 3.21.0.0 The aim of this class is to provide a simple viewer of DIM services published in a DIM domain. Just create an object of this class by sending a "CreateObject" event to the SuperProc object.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
DIMTrendGUI.lvlib 3.20.0.0 This is the constructor of this class.

With this VI one is permitted to graphically demonstrate its services from DIM to the lifespan of its Object. The only possible Data-Types are I, D and L. One can select from all-over the Domain up-to-date CS system, however a maximum of 8 items. Therefore, one can click through over the Objects to the services or with help from the Filters select several (max 8). The choice can then be stored and once again accessed.
There are two different graphs. In Tap "Value Display" the Graph is being updated, if new Values are being released in DIM. In the other Tap "Trending" the Values are being read out periodically from DIM.
To confirm the possibilities, to allow the window to downsize and the graphs scaled logarithmical.

author: Melanie Wolf
maintainer: H.Brand@gsi.de
history:
2007-02-27 H.Brand@gsi.de, Upgrade to CS 3.1
2010-11-24 H.Brand@gsi.de, Upgrade to CS 3.20
DIM_DIO.lvlib 1.4.0.0 This class handles one pair of digital input/output that is connected via DIM. A typical use case are digital I/O on a Profibus.

Typically, The link to the real (hardware) I/O module is established via OPC and the connection to OPC is provided by the SCADA backend. For the CS framework, the standard SCADA backend is the LabVIEW DSC module by NI.

A simplified view of the communication is as follows.

(object of )DIM_DIO <=> DIM <=> (object of )DSCIntProc <=> LV-DSC module <=> OPC <=> I/O-module.

In case you use the DSC engine and DSCIntProc as SCADA backend, you need to do the following for each object.
1) connect the DSC engine to the OPC server with two Shared Variables. One for the control channel ("OBJECTNAME_nomOPCValue") and one for the monitor channel ("OBJECTNAME_actOPCValue").
2) Using the "DB and SVCreate" tool, enter the configuration data into the database for that object. Remark: You only need to define the names of those two Shared Variables in the configuration database, if you use a different naming convention than the one described above.
3) Using the option "create SV file" of the "DB and SVCreate" tool, create Shared Variable configuration files in CSV format.
4) Eventually, you would like to edit/change the Shared Varaible configuration file created in the previous step.
author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
DS345.lvlib 1.12.0.0 Arbitrary function generator DS345 from Stanford Research Systems. This class uses an instrument driver to communicate with the hardware. The device is connected via GPIB. Finally, this device talks to a GPIB driver that must be installed on your system. For trending, this class queries the actual ampltiude and frequency from the instrument and publishes them to DIM.

This class is based on the AFGBase class.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
DSCAlarmGUI.lvlib 3.14.0.0 This class just serves as panel for the user who wants to know all occured alarms their alarm states and settings (limits, priorities). This class works directly on the SharedVariables associated with the alarms. When an object of THIS class is created, it gets the name of a DSCIntProc object via the constructor. It then queries that DSCIntProc class for the URLs of the SharedVariables. When this is done, the object no longer uses the DSCIntProc object nor does THIS class require an DSCAlarm class as in previous versions.

author: Dietrich Beck, original author Maximilian Kugler
maintainer: Dietrich Beck
DSCIntProc.lvlib 3.14.0.0 Interface between the CS framework and a real time data base that used for trending and alarming. Presently the DSC engine from National Instruments is used as the real time data base (RTDB) using Shared Variables (SV).

Configuration of SV:
When an object is created, this class reads SV properties from CSV files. The paths of the CSV files are stored in the configuration data base of CS (Properties :Address0, Address1, ...). There are a couple of possibilites to create such CSV files.
- Using the "Multiple Variable Editor" and "Export Variables..." feature from the LabVIEW development system.
- Using MS-Excel.
- Using the actual version of the CSDBTool allows for mass configuration.
Remark1: Don't import CSV files into the Multiple Variable Editor, since OPC configuration of a SV may become broken or lost.
Remark2: None of the properties, like the "Description", may contain commas ",". Otherwise the import of the CSV files may not work.

Configuration of IO-Servers.
When a SV should be linked to OPC, you need to create an "I/O server". There are two possibilities for creating an I/O server.
1) Like creating SVs, this can be done when creating an object of this class. The properties of an IO-Server are read obtained from CSV files, of which the path is obtained from the configuration database of CS (Properties: Interface0, Interface1). Edit such a CSV file using MS-Excel. Have a look at the examples. Use this method, if the configuration of OPC server changes frequently.
2) Using the "Distributed System Manager" (Start->Program Files->National Instruments->Distributed System Manager). Create, modify or destroy I/O servers. Unfortunately, you can not re-load or save settings. However, all changes are persistent and settings are automatically reloaded upon rebooting the machine. Use this method, when changes are less frequent like for production systems.

For configuring the relationship between DIM services and Shared Variables two keywords may be used in the "Description" property of a Shared Variable.
1) "DIM2DSC": This class subscribes to the DIM service having the same name as the shared variable. The DIM service is published elsewhere. Each time an update of the service is received, its value is written to the SV.
2) "DSC2DIM": This class subscribes to changes of the SV. Each time the SV changes, its value is published to a DIM service having the same name as the SV. In case the DIM service is an array of values, the description of a class may contain the keyword ISARRAYNN, where NN is the number of values of the array. In this case, the DSCIntProc class will write updated value received from DIM to SVs named SVNAME_CHANNELMM, where MM is the index of the array element. Each SV of the SVNAME_CHANNELMM must be included in the csv file used to create the SV (Why? Because only if the array elements are created individually, they can have individual properties like alarms...).
-
Remark: For performance reasons there is no name mapping from DIM service names to Shared Variable names. This requires, that DIM service name that are connected to DSC must not use charachter not supported by DSC like "\", "_", ...

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
DeviceBase.lvlib 1.13.0.0 This is the base class for a device class. It provides basic events, some methods and publishes the services "OBJECTNAME_deviceState" and "OBJECTNAME_deviceID". This class can be used by classes that are implemented for more specific device classes.

The deviceState can have three states:
0 : OK
>0: NOT_OK
<0: ERROR

Child classes should provide the following methods.
"Initialize": Execute the "Initialize" routine of the instrument driver. Should be called in the constructor of a device class. Eventually, the "Reset" routine is already executed from within the "Initialize" routine.
"Close": Execute the "Close" routine of the instrument driver. Should be called in the destructor of a device class.
"Configure": Execute the "Configure" routine of the instrument driver. Can be called in the constructor of a device class.
"Reset": Execute the "Reset" routine of the instrument driver. Can be called in the constructor of a device class.
"IDQuery": Execute the "IDQuery" routine of the instrument driver.

The events for these methods are already defined in this class but can be overwritten by child classes.
author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
DeviceBaseGUI.lvlib 1.13.0.0 A dedicated GUI for the DeviceBase class. It can be used by all classes that have inherited from the DeviceBase class. The main purpose of THIS class is avoiding duplicate code in GUI classes.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
DigiIOBase.lvlib 1.13.0.0 This is the base class for an digital IO device. It provides basic events, some example methods and publishes a lot of services "OBJECTNAME_SERVICENAME". This class can be used as parent class for classes that implemented a specific digital IO device.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
DigiIOBaseGUI.lvlib 1.13.0.0 A dedicated GUI for the DigiIOBase class. It can be used by all classes that have inherited from the DigiIOBase class.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
DiscArchiver.lvlib 1.13.0.0 Gets data from a data collector and writes it to disk. The DiscArchiver is initialized by the "RegisterToEventBuilder" method. It obtains descriptionData of a run and the eventData of a run via DIM services

author: Dietrich Beck, GSI
maintainer: Dietrich Beck ,GSI
ESONE_Dispatcher.lvlib 1.0.0.0 This is the constructor the ESONE_Dispatcher.

The dispatcher uses the ESONE driver to send and recive CNAFŽs from the ESONE Server.

The following database entries are used to initialize the ESONE_DispatcherŽs attributes:
-Address0 --> The network address of the ESONE Server

author: Alexander Schwinn
maintainer: H.Brand@gsi.de
history:
EventBuilder.lvlib 1.13.0.0 An event builder that collects data from DAQ devices and publishes them via DIM together with a description of the data.

An application sets a "header" of the data and the names of the DAQ devices by using the method "Init". When executing the method init, the EventBuilder will publish a DIM service "EVENTBUILDERNAME_dataDesciption" (see below).

During data acquisition, three things happen.
1) An applicatoin triggers the read out of the DAQ devices by using the command "ReadDAQData". This requires that an "eventID", that is sent together with the "ReadDAQData" command, is incremented for each subsequent command.
2) Then, the EventBuilder will collect the data by queyring the DAQ devices using a "ReadData" event.
3) Finally, the EventBuilder will publish the collected event data as a DIM service "EVENTBUILDERNAME_eventData".
"EVENTBUILDERNAME_dataDescription" has the format "D:1;C:32768;C" and contains a headerID (double timestamp), the names of the DAQ devices (char names[32768], names separated by "|") and a user defined data header (char *header).

"EVENTBUILDERNAME_eventData" has the format "D:1;D:1;L:1;C" and contains the headerID (double timestamp), a timestamp (double timestamp), an eventID (long index) and the data (char *data). The data themselves are bundled using the "data 2 bytea array" from the CoreLib. Hence, they are packed according to the CS command format "C:N;C:N;C:N[;C:N;C:N;C:N'[;...]]", where the first string contains the name of the DAQDevice, the second string contains the "data descriptor" of the data and the last byte array contains the "data" according to the "data descriptor". Since there can be more than one DAQDevice, each set of even data may contain data of more than one DAQDevice.

WARNING: It might be possible, that a client receives DIM service data more than once. As an example, this can happen, when a client re-connects to the DIM server publishing the data. In order to avoid duplicate data, the client MUST analyze the headerID (making sure, that the data belongs to the same "run") and the eventID (making sure, that no data is missed or duplicate).

IMPORTANT: One must consider the size of the "EVENTBUILDERNAME_eventData" service. Typically, all DIM services are published in "safe mode", which means that subscribing to a DIM service that is published by the same OS-task will work. However, if one would like to publish large services, it might be necessary to disable the "safe mode". In that case a task must not subsribe to its own services. The "safe mode" can be enabled/disabled via the configuration database.

Tip: There are useful routines in the DataLib, that may be used for packing/unpacking of data.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
GOGController.lvlib 0.2.0.0 Class for "GeneralObjectGUI controller objects" of an application layer. The infrastructure provided by a GOG is used for creating objects and executing methods. Each GOGController object has a GOG object associated. The GOG object does not need to be configured via the database, but is configured via the constructor of THIS class. The configuration file of the GOG object can be set-up by using another GOG like the user GOG.

Subcontrollers are defined via the database as "Interface" elements.
Devices may be defined via the associated GOG object.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
GOGControllerGUI.lvlib 0.2.0.0 This class provides methods and functionality that aid for implementing GUIs for GOGController objects in the application layer.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
GOGCtrlDemoGUI.lvlib 0.2.0.0 This is simple class providing a demo for a facility specific GUI based on a GOGController objects in the application layer.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
GOGFrontPanel.lvlib 3.21.0.0 Provides frontpanel for user friendly use of methodes with parameters of simple data type. This class is intended for use together with the GeneralObjectGUI.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
GSI-HVSwitch2.lvlib 1.16.0.0 6 channel fast switching power supply for voltages of up to +/- 200V. This device was developped by Harald Hahn, EE/KS/GSI. It uses a LabVIEW instrument driver that is available via http://labview.gsi.de/driver.htm. Refer to the documentation of the instrument driver for more details.

Each object of the GSI-HVSwitch class just controls one channel of that power supply.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
GeneralObjectGUI.lvlib 3.21.0.0 A general GUI to work with objects - good for static parameters or control systems without a sequencer. It can be used interactively or event driven (no configuration). Of course, a certain subsystem can be configured and the settings stored and reloaded.

Think object oriented!

Example: A control system is divided into sub systems. Each sub system has its own GOG object. A main GOG (MainGOG) object may be used to start up the control system automatically.

The sub system GOGs are configured as "enabled' and "autocreate" objects in the MainGOG.

By starting the MainGOG the sub system GOGs are created.

When a sub system GOG is created, it creates all "enabled" and "autocreated" objects of the sub system and executes all "enabled" and "auto execute" methods of the sub system objects.

If each sub system GOG has its "Execute" method configured in the MainGOG as "enabled", all parameters of the whole control system can be set by just doing an "Execute" of the MainGOG.

Front panels for user action can be created on the fly for each object. Those can either be generic front panels or dedicated (user) front panels. A dedicated user front panel must follow a name convention: The user panel of an object of class "classname" must have the name "classnameGUI"; note the upper case letters "GUI".

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
IVIOscilloscope.lvlib 1.0.0.0 This Class is an implementation of the standard IVI oscilloscope interface. It should be used as base class for all other oscilloscopes with no IVI driver.

This class was basically tested with IVI Compilance Package 2.5 and IVI driver for the TDS220.

author: Holger Brand, GSI
maintainer: H.Brand@gsi.de
history: 7-FEB-2007 Upgrade to CS 3.1
Lambda_LV_Supplies.lvlib 1.0.0.0 This is the constructor the Lambda_LVLSupplies Class.

The following database entries are used to initialize the object's attributes:
- Special n --> Channel name n
- Address n --> The GBIP addres of Channel n, for example: GPIB0::4::INSTR
refer to Measurement & Automation eXplorer (MAX)
author: Alexander Schwinn
maintainer: H.Brand@gsi.de
MCSBase.lvlib 1.13.0.0 This is the base class for a multi channel scaler (MCS). It provides basic events, some example methods and publishes a lot of services "OBJECTNAME_SERVICENAME". This class can be used as parent class for classes that implemented a specific mulit channel scaler.

A scaler is a counter. A MCS is a counter to accumulate events to a selectable number of bins associated with a programmable segment of time over multiple scans. Thus, a MCS can be used to record events or counts as a function of time. A MCS is typically used for counting signals from detectors as photomultipliers, multi channel plates or channeltrons. Thus, typical applications are high speed photon counting or recording of time-of-flight spectra in bunched ion beams.

Glossary:
bin: a channel in a spectrum
record: data acquired after one trigger
scan: if multiple triggering is used, multiple "records" are accumulated into one "scan".

Remark: A MCS should not be confused with an multi channel analyzer (MCA), which is used to measure pulse-heights on several channels, to enable spectral analysis.

For using this class and child classes, see the file MCSBase_mapping.ini for a description of the required database entries.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
MCSBaseGUI.lvlib 1.13.0.0 A dedicated GUI for the MCSBase class. It can be used by all classes that have inherited from the MCSBase class.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
MotorBase.lvlib 1.13.0.0 This is the base class for a motor. This could be a stepper motor, a servo motor or a piezo motor.It provides basic events, some example methods and publishes a lot of services "OBJECTNAME_SERVICENAME". This class can be used as parent class for classes that implemented a specific motor class for a motion application.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
MotorBaseGUI.lvlib 1.13.0.0 A dedicated GUI for the MotorBase class. It can be used by all classes that have inherited from the MotorBase class.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
NIFPGA-MCS.lvlib 0.4.0.0 Class for using an NI-FPGA target (like PCI-7811) as a multi-channel-scaler (MCS) for acquisition of time-of-flight spectra. This class uses a dedicated instrument driver as an interface. The bitfile of the FPGA target must be selected in the block diagram of the "initialize.vi" of the instrument driver (refer to the documentation of the lvlib of the instrument driver for more details).

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
NI_FPGA_PPG.lvlib 0.3.0.0 This class enables using a RIO card (PCI7811R, PXI7811R, PCI7813R, PXI 7813R, ...) from National Instruments as a pulsed pattern generator. It allows to produce sequences of bit patterns at well defined times with a precision down to a few nanoseconds. The class is based on the NI-FPGA_PPG_Driver.

For more features and detailed specifications have a look into the documentation of the driver.

maintainer: Dietrich Beck, d.beck@gsi.de
author: Falk Ziegler
NanotecSMCPD.lvlib 0.2.0.0 Class for serial step motor controlers from Nanotec. Supports SMCI32, SMCI47, PD4-I and PD6-I. This class uses the instrument driver NanotecSMCPDDriver and is based on the MotionBase class.

author: Dietrich Beck
maintainer: Dietrich Beck
NotifierObj.lvlib 3.21.0.0 In case unbuffered message events (notifiers) are defined in an object of the CAEObj class (or it's children), an object of the NotifierObj class is created for handling these events.

Then, the NotifierObj waits for a notification. When a notification is received, the message received is stored in the NotifierObj and an event is sent to the assiciated object via the message queue. Then, the associated object retrieves the message from the NotifierObj via a direct method call.

Each associated object has none (if not notifications are used) or exactly one NotifierObj. All notifaction events defined for the associated object are handeld by the same NotifierObj.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
ObjectInspector.lvlib 3.21.0.0 Allows to view objects that have been instantiated by the "System".

Most importanty, properties like EvtError, EvtStatus, EvtLoopCounter, IsLocked, ... can be viewed. Not only objects on the local node, but also processes on the remote node can be viewed.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
PIMercuryStep.lvlib 0.1.0.0 This class supports the C-663 Mercury Step stop motor controller from Physik Instrumente (PI). Up to 16 controllers can be connected to one interface by a daisy chain. An object of this class talks to all controllers connected to the same interface. Since a controller controls exactly one motor, this class uses the word "axis" as a synonym for "controller".

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
PPG_ABC.lvlib 0.3.0.0 This class has inherited from the NI_FPGA_PPG class. It provides methods required for using pattern definitions that are based on the usage of lower case and upper case letters. (like "abC"), where each letter is associated a certain time. This class is intended to be used with MM6/MMLebit classes but is rather general.

The status of the FPGA can be observed by subscribing to a DIM service OBJECTNAME_pgRunning. The status is defined in the PG_Running.ctl of THIS class.

maintainer: Dietrich Beck, GSI
author: Dietrich Beck, GSI
PSChannelBase.lvlib 1.13.0.0 This is the base class for one or more power supply channels. It provides basic events, some example methods and publishes a lot of services "OBJECTNAME_SERVICENAME". This class can be used as parent class for classes that implemented a specific power supply channel.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
PSChannelBaseGUI.lvlib 1.13.0.0 A dedicated GUI for the PSChannelBase class. It can be used by all classes that have inherited from the PSChannelBase class.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
RS_AM300.lvlib 0.3.0.0 This class is a quick hack for the AM300 from Rohde & Schwarz. Only basic functionality is supported. It is based on an instrument driver from the R&S web-site (driver name: RSSIAM; software version of driver: 1.8.1; driver developed for: LV6.1)

You must run the installation of additional software from R&S which should copied to ROOTPATH\LV820\non_GPL\instr.lib\RS_AM300\originalRSDriver before using the CS Class. Moreover, use the SiScan tool from R&S to obtain the VISA resource of the device after connecting it, and enter the resource into the database.

maintainer: Dietrich Beck, GSI
author: Dietrich Beck, GSI
SR430.lvlib 1.18.0.0 Multi channel scaler SR430 from Stanford Research Systems. This class uses a dedicated instrument driver. The communication with the instrument is based on VISA. This class finally talks to a VISA->GPIB driver that must be installed on the system.

This class is based on the MCSBase class contained in the application base classes. Please note, that a dedicated GUI exists already via the application base classes. The easiest way accessing the GUI is by adding an object of the SR430 class to a GeneralObjectGUI, double-click will open the GUI.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
SimAFG.lvlib 1.12.0.0 This class simulates an arbitrary function generator. It may serve as an example for a class for a real device. This class also replaces the SimDS345 class.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
SimDigiIO.lvlib 1.12.0.0 This class simulates a digital I/O device. It may serve as an example for a class for a real device.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
SimMCS.lvlib 1.12.0.0 Simulates a Multi Channel Scaler The main purpose of this class is to generate simulated data. The SimMCS is adapted to the needs of trap experiments using time-of-flight detection.
It can be used in two different modes that can be selected using the method SetTofMode.
- TRUE: generated data yields a Gaussian, when displaying time-of-flight versus frequency.
- FALSE: generated data yields a Gaussian, when displaying count rate versus frequency.

The frequency at which the data is generated can be set by the method SetActFreq.
The center frequency can be set by the method SetCenterFreq.
The width of the Gaussian can be set using the method SetResWidth.
The average number of counts can be set by the method SetCounts.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI
SimMotor.lvlib 1.12.0.0 This class simulates a motion device. It may serve as an example for a class for a real device.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
SimPPG2.lvlib 0.3.0.0 This class serves as a dummy pattern generator class for testing of application layer code. It is basically a copy of the PPG_ABC class without access to the hardware.

The status of the FPGA can be observed by subscribing to a DIM service OBJECTNAME_pgRunning. The status is defined in the PG_Running.ctl of THIS class.

maintainer: Dietrich Beck, GSI
author: Dietrich Beck, GSI
SimPowerSupply.lvlib 1.12.0.0 This class simulates power supply channels. It may serve as an example for a class for a real device.

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de
SuperProc.lvlib 3.21.0.0 An object of the SuperProc class loads and unloads other instances of child classes of the BaseProcess class. Such instances are name "processes". It maintains a process table, which is an array of structures. Such a structure contains the name of a process, the reference of the process, data needed for the watchdog funtionality and a connection table of a process. The connection table contains information, about other processes that use this process. As long as the connection table is not empty, the process can not be unloaded.

The SuperProc class also provides other useful function for all kind of objects like opening front panels, killing objects, getting the names of all objects etc.

Definitions:
An object is an instances of a class.
A process is an object of the class BaseProcess or one of it's children.
"Loading" a process means to create/instantiate a process.
"Unloading" a porcess means to destroy a process in a friendly way.
"Killing" an object means to destroy the object in an unfriendly way.

All methods that require the name of a process or an object as an input do now support the "N/A" feature. They do not execute in case the name equals "N/A".

author: Dietrich Beck, GSI
maintainer: Dietrich Beck, GSI; d.beck@gsi.de

history: 08-JUL-2005

Created generically by the GenerateHTMLReportOfClasses tool.

-- DietrichBeck - 16 Feb 2011
Topic revision: r24 - 2011-02-16, DietrichBeck
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding GSI Wiki? Send feedback
Imprint (in German)
Privacy Policy (in German)