NSCL DAQ Software Documentation


Table of Contents
I. introduction
1. Introduction
1.1. How does the ring buffer data acquisition system work
1.2. Overview of ring buffer utilities
1.3. Documentation roadmap
II. commands
2. The ringbuffer command
3. Ring piping utilities
4. Command line access to CAMAC via the SBS interface
5. Tcl access to the VME via the SBS interface
5.1. Incorporating Vme Tcl in your scripts
5.2. Sample programs that use the package
III. utilities
6. glom
7. Readout GUI (ReadoutShell)
7.1. Running and using the ReadoutShell
7.2. Event file organization
7.3. Customizing Readout Shell
8. Epics Channel logging
9. Providing EPICS channel information to Tcl Servers
10. The epics display utility
epicsdisplay NSCLRingDAQ 10.0+ Ron Fox -- Display epics channels
11. cratelocator
12. CAEN V812 Constant Fraction Discriminator
13. N568B CAENnet shaping amplifier
14. VHS-40xxx SBS support.
15. The tcl server application
16. Dumping events from ringbuffer or from file
16.1. Item dump formats and examples
17. Compatibility utilities
17.1. Format conversion with compatibilitybuffer
17.2. Writing event files with compatibilitylogger
17.3. Convenience scripts
17.4. BufferToRing
18. daqstart - Starting programs with logging and monitoring
19. DvdBurner - Using Tcl to burn runs to DVD
20. Utilities for burning data to DVD
21. The Event log program
22. The ringselector application
23. Scaler Display Software.
24. The Scaler Display Client
25. Sequencing runs
25.1. Configuring the sequencer.
25.2. Using the sequencer.
IV. libraries
26. Integer byte order conversion library
26.1. Using the conversion library in your code
26.2. Byte order signatures and conversion blocks
26.3. Data conversion
27. Ring master class library.
28. Networked ring buffer access
29. Ring Buffer Primitives
29.1. Incorporating ring buffer software
29.2. Overview and Examples of ring buffers in action.
30. The Tcl ring package
31. The NSCL Exception class library
31.1. Incorporating the library in your programs
31.2. Exception classes
32. Shared memory
32.1. Overview of the API, and using it from within your C++ software
32.2. Compiling/Linking your software with the shared memory API
33. Access control and security
33.1. Incorporting the software into your code
33.2. Authenticators
33.3. Interactors
34. C++ encapsulation of a Tcl API subset
35. NSCL DAQ Thread Library
35.1. The thread and synchronization model
35.2. Incorporating the library into an application.
35.3. Pointers to the reference material
36. Parsing and URIs
37. Event builder client API
37.1. C++ Client API
37.2. Incorporating the event builder client library
37.3. Connecting to the event builder.
37.4. Disconnecting from the event builder.
37.5. Sending data to the event builder.
37.6. The Event orderer/event builder API
37.7. Callbacks
38. Format of Event Data In Ring Buffers
38.1. The basic data formats
38.2. Selecting Data From a Ring Buffer
38.3. Incorporating the headers and libraries into your applications.
38.4. Creating ring items
39. S800 ReadoutCallouts
39.1. S800 Data acquisition system
39.2. Scope of the integration problem.
39.3. Using the S800 integration package
40. The NSCL Exception class library
40.1. Incorporating the library in your programs
40.2. Exception classes
41. C++ encapsulation of a Tcl API subset
42. The NSCL Exception class library
42.1. Incorporating the library in your programs
42.2. Exception classes
43. C++ encapsulation of a Tcl API subset
44. SBS Base interface classes to the VME
44.1. The classes
44.2. Incorporating headers and libraries into your program.
45. Tcl CAENet package
46. The CES CBD 8210 Tcl CAMAC Package
46.1. Incorporating camac into your scripts
46.2. An overview of the use of the camac package
47. The Wienercamac Tcl package
47.1. Incorporating wienercamac in your scripts.
47.2. Using wienercamac
48. SBS VME Module level device support software
V. servers
49. The RingMaster server
49.1. The RingMaster Protocol
50. Service Port Manager.
VI. frameworks
51. Event orderer and its user interface
51.1. Event orderer design philosophy.
51.2. Using the standard event orderer startup script
51.3. Writing an event orderer startup script
51.4. Event orderer packages
52. Event builder client framework
52.1. Application specific code for the event builder
52.2. Building event builder clients.
52.3. Running event builder clients
52.4. ringFragmentSource - a prepackaged client for ringbuffer data sources
53. Event builder Readout Callouts
53.1. API layer
53.2. EZBuilder
Preface
EVBC::start -- Start the event builder pipeline.
EVBC::stop -- Stop the event builder pipeline.
EVBC::reset -- Reset timestamp history
EVBC::flush -- Flush event builder event queues.
EVBC::startRingSource -- Start a ring fragment source for the event builder.
EVBC::startS800Source -- Start S800 data source
Preface
EVBC::initialize -- Initialize the EZBuilder layer.
EVBC::onBegin -- EZBuilder begin run actions
EVBC::onEnd -- EZBuilder end run actions.
Event builder client framework -- Event builder cilent framework
EVB::handleFragment -- Submit event fragments.
EVB::inputStats -- Event builder input statistics
EVB::outputStats -- Get orderer output statistics
EVB::dlatestats -- Get the late fragment statistics.
EVB::onDataLate -- Bind scripts to data late events.
EVB::barriertrace -- Supply a script to invoke on barrier events.
EVB::source -- Create event source queues.
EVB::deadsource -- Mark a data source dead.
EVB::reviveSocket -- Revive all dead data sources associated with a socket
EVB::flush -- Empty all input queues.
EVB::reset -- Reset timestamp clocks.
54. The SBS Readout framework
54.1. SBS Readout concepts
54.2. Obtaining and building the skeleton application
54.3. Modifying the skeleton application to meet your needs
54.4. Readout commands
54.5. Embedded Tcl server
54.6. Running a readout application
55. CCUSB Readout framework
55.1. How the CCUSB readout framework works
55.2. Writing DAQ configuration files
55.3. Writing device support software
55.4. Tcl device driver support
55.5. The slow controls subsystem
55.6. Running CCUSBReadout
56. VMUSB readout
56.1. How the VMUSB readout framework works
56.2. Writing DAQ configuration files
56.3. Writing C++ device support software
56.4. Writing device support software in Tcl
56.5. The slow controls subsystem
56.6. Pushing external data into the event stream
56.7. Running VMUSBReadout
VII. Reference Pages
I. 1compatibility
compatibilitybuffer -- Filter ring items to spectrodaq buffers
compatibilitylogger -- Create spectrodaq formatted event log files.
eventlog-compat -- Provide event logger pipeline for use with ReadoutGUI.
spectcldaq -- Pipe data source for SpecTcl in spectrodaq buffer mode.
spectcldaq.server -- TCP/IP server of ring data in spectrodaq format.
BufferToRing -- Convert old buffered data to ring buffer format.
II. 1daq
ringbuffer -- Manage ring buffers.
ringtostdout -- Transmit data from a ring buffer to stdout.
stdintoring -- Pipe stdin to a ring buffer.
evttclsh -- Tcl interpreter that always runs an event loop
frag2ring -- Filter flattened fragments to ring items.
glom -- Glue event fragments together into events
S800 Ring fragment data source -- Event builder ring fragment source from s800
teering -- Tee data to stdout and a ringbuffer.
Readout Gui -- Encapsulate data sources in a graphical user interface
evttclsh -- Tcl interpreter that always runs an event loop
evttclsh -- Tcl interpreter that always runs an event loop
dumper -- Produce a formatted dump of event data.
daqstart -- Monitor essential programs
eventlog -- Record Event Data to Disk.
ringselector -- Provide selected ring data to non NSCL DAQ aware clients
sclclient -- Maintain scaler state in a tclserver
tkdumper -- GUI Dump of ring buffer items.
III. 1epics
chanlog -- Write a set of channels to file
controlpush --  Push epics data into a Tcl Server (e.g. production readout).
IV. 1evb
EVB::BarrierStats::incomplete -- Display incomplete barrier statistics
EVB::BarrierStats::queueBarriers -- Displays per queue barrier statistics
EVB::BarrierStats::Summary -- UI element to summarize barrier statistics.
EVB::CallbackManager -- Object that manages callback sets.
EVB::connectionList -- List event builder connections
EVB::GUI procs -- Standard monitor UI procs.
EVB::inputStatistics::statusDisplay -- Widget to display input statitics
EVB::inputStatistics::queueStats -- Per queue input statistics widget
::EVB::inputStatistics::queueDisplay -- Display input queue statistics
EVB::inputStatistics::summaryDisplay -- Summary of input statistics.
EVB::lateFragments -- Late fragment statistics
EVB::lateSummary -- Widget to display summar of data late fragments.
::EVB::outputStatistics -- Complete output statistics widget
::EVB::outputSummary -- Summarize output statistics
::EVB::utility::sortedPair -- Key value pair widget
::EVB::utility::sortedWidget -- General key/widget sorted list
EventBuilder -- Event builder utility procs
Observer -- Support the Observer pattern
EvbOrderer -- Event orderer compiled commands.
V. 1tcl
TCL Ring package. -- Access Rings from tcl.
cratelocator -- locate specific SBS VME crate controllers.
cesbcnaf -- CAMAC operation via a CES CAMAC interface
wienerbcnaf -- CAMAC operation via a Wiener VC32/CC32 board set
bcnaf -- bcnaf via SBS VME CAMAC interfaces
canev812control -- GUI for controlling CAEN V812 CFD modules
loadcfd -- Load settings in to a CAEN V812 CFD module.
loadshaper -- Load setttings into an N568 shaper via SBS/V288.
n568Control -- GUI for the n568 shaper.
vhqControl -- Control panel application for VHQ bias supply modules.
vhsPanel -- Canned VHS Control panel
SBS Vme Tcl package -- Provide access to VME crates to Tcl scripts.
DaqPortManager -- Manage TCP/IP service ports and advertise their allocations
tclserver -- Start a Tcl Server.
serverauth -- Control tcl server authorization.
dvdburn -- Command line tool to burn NSCLDAQ data DVDs.
burngui -- Graphical front end to dvdburn
ScalerDisplay -- Live Scaler Displays
VI. 1sbsReadout
Readout -- Start an event readout program.
VII. 3daq
CopyrightNotice -- Generate license/author credits.
cvt -- Integer byte order conversions
CRingMaster -- RingMaster access.
CRingAccess -- Remote Ring Access
CRingBuffer -- Low level ring buffer primitives
CException -- Abstract base class for the exception class hierarchy.
CErrnoException -- Exceptions that wrap the Unix errno
CRangeError -- Reports and exception for a value out of allowed range.
CStateException -- Exception for invalid state transitions.
CStreamIOError -- I/O error on a C++ stream.
CURIFormatException -- Report errors in universal resource identifiers (uri)s.
CMonitorException -- Exceptions for synchronization class abuse.
CInvalidArgumentException -- Report invalid function arguments.
CDAQShm -- class description
CAuthenticator -- Abstract base authenticator class.
CPasswordCheck -- Authenticate against a stored password.
CUnixUserCheck -- Authenticate against a unix user name and password.
CTclAccessListCheck -- Authenticate against a Tcl List.
CAccessListCheck -- Authenticate against a list of allowed credentials.
CHostListCheck -- Authenticate from a list of TCP/IP hosts
CInteractor -- Base class for security interactions.
CStringInteractor -- Provide an interactor that processes strings.
CFdInteractor -- Interact with file descriptor
CIOInteractor -- Separate prompt and input interactors.
CTCLApplication 3 --  Base class for TCL/Tk applications.
CTCLException --  Class for reporting exceptional conditions in Tcl applications via the C++ try/catch mechanism.
CTCLInterpreter --  Encapsulate a Tcl interpreter.
CTCLInterpreterObject 3 --  Base class for objects that are associated with a Tcl Interpreter.
CTCLList --  Provide access to Tcl List parsing.
CTCLObject --  Encapsulate Tcl Dual ported objects.
CTCLObjectProcessor --  Abstract base class to encapsulate the Tcl object command interface exposed by Tcl_CreateObjCommand.
CTCLVariable --  Encapsulate Tcl interpreter variables.
CTCLProcessor --  Provide argc, argv extension commands to Tcl.
CTCLChannel --  Provide a C++ abstraction wrapper for Tcl Channels.
CTCLCommandPackage --  Group several related Tcl command extensions and common services they may require together.
CTCLCompatibiltyProcessor --  Adaptor between CTCLOjbectProcessor and CTCLProcessor.
CTCLFileHandler --  Base class for building object oriented Tcl File event handlers.
CTCLHashTable --  Object oriented interface to Tcl's hash table functions.
CTCLHashTableItem --  Encapsulation of an entry in a Tcl Hash table as encapsulated in CTCLHashTable
CTCLHashTableIterator --  Iterator for visiting all elements of a CTCLHashTable
CTCLIdleProcess --  Allows the establishment of an executable object that can be scheduled to be invoked when the Tcl/Tk intperpreter has no events that require processing.
CTCLPackagedCommand --  Base class for a command that lives in a CTCLCommandPackage
CTCLResult --  Provide an object oriented interace to the Tcl interpreter result.
CTCLString --  Provide a wrapper for the Tcl_DString data type and its API
CTCLTimer --  Abstract base class for C++ objects attached to timer events.
CTCLLiveEventLoop -- Run Tcl with event loop.
CTCLChannelCommander -- Accept commands on a Tcl channel from the event loop.
CTCLStdioCommander -- Event driven command input on stdin/stdout
CTCLServer -- Listener for a Tcl server.
CTCLTcpServerInstance -- Channel commander that is a server instance for CTCLServer
CTCLObjectPackage -- Provide common functionality for a set of related commands.
CTCLPackagedObjectProcessor -- Base class for commands living in a CTCLObjectPackage
CItemConfiguration -- Hold a configuration
CConfigurableObject -- Base class for objects tht have a configuration.
Thread -- Abstract base class for thread objects.
Synchronizable -- Wait queue for threads
SyncGuard -- Provide Critical Regions, Monitors
URL -- Parse Uniform Resource Identifiers (URI)
CEvbClientApp -- Framework event builder client application.
CEVBClientFramework -- Event builder client framework.
CEventOrderClient -- Client of the event orderer
CRingItem -- Encapsulates an item in a ring buffer.
CRingScalerItem -- Encapsulate ring buffer scaler items.
CRingStateChangeItem -- Encapsulate a ring buffer state change item.
CRingTextItem -- Encapsulate ring items that are lists of text strings.
CRingPhysicsEventCountItem -- Provides statistics regarding the number of events produced.
CRingFragmentItem -- Encapsulate a EVB_FRAGMENT ring item
CRingSelectionPredicate -- Base class for predicates that select items from ring buffers.
CAllButPredicate -- Select all ring items except some.
CDesiredTypesPredicate -- Only accept specified ring item types.
DataFormat.h -- Format of ring items.
format Functions -- Functions to create ring items.
CDataSource -- Abstract base class of data source for ring items.
CRingDataSource -- Ringbuffer data source for ring items.
CFileDataSource -- Ring item data source from a file
CDataSourceFactory" -- Create data sources given a URI
CRingItemFactory -- Upcast ring items to specific ring item objects.
CException -- Abstract base class for the exception class hierarchy.
CErrnoException -- Exceptions that wrap the Unix errno
CRangeError -- Reports and exception for a value out of allowed range.
CStateException -- Exception for invalid state transitions.
CStreamIOError -- I/O error on a C++ stream.
CURIFormatException -- Report errors in universal resource identifiers (uri)s.
CMonitorException -- Exceptions for synchronization class abuse.
CInvalidArgumentException -- Report invalid function arguments.
CTCLApplication 3 --  Base class for TCL/Tk applications.
CTCLException --  Class for reporting exceptional conditions in Tcl applications via the C++ try/catch mechanism.
CTCLInterpreter --  Encapsulate a Tcl interpreter.
CTCLInterpreterObject 3 --  Base class for objects that are associated with a Tcl Interpreter.
CTCLList --  Provide access to Tcl List parsing.
CTCLObject --  Encapsulate Tcl Dual ported objects.
CTCLObjectProcessor --  Abstract base class to encapsulate the Tcl object command interface exposed by Tcl_CreateObjCommand.
CTCLVariable --  Encapsulate Tcl interpreter variables.
CTCLProcessor --  Provide argc, argv extension commands to Tcl.
CTCLChannel --  Provide a C++ abstraction wrapper for Tcl Channels.
CTCLCommandPackage --  Group several related Tcl command extensions and common services they may require together.
CTCLCompatibiltyProcessor --  Adaptor between CTCLOjbectProcessor and CTCLProcessor.
CTCLFileHandler --  Base class for building object oriented Tcl File event handlers.
CTCLHashTable --  Object oriented interface to Tcl's hash table functions.
CTCLHashTableItem --  Encapsulation of an entry in a Tcl Hash table as encapsulated in CTCLHashTable
CTCLHashTableIterator --  Iterator for visiting all elements of a CTCLHashTable
CTCLIdleProcess --  Allows the establishment of an executable object that can be scheduled to be invoked when the Tcl/Tk intperpreter has no events that require processing.
CTCLPackagedCommand --  Base class for a command that lives in a CTCLCommandPackage
CTCLResult --  Provide an object oriented interace to the Tcl interpreter result.
CTCLString --  Provide a wrapper for the Tcl_DString data type and its API
CTCLTimer --  Abstract base class for C++ objects attached to timer events.
CTCLLiveEventLoop -- Run Tcl with event loop.
CTCLChannelCommander -- Accept commands on a Tcl channel from the event loop.
CTCLStdioCommander -- Event driven command input on stdin/stdout
CTCLServer -- Listener for a Tcl server.
CTCLTcpServerInstance -- Channel commander that is a server instance for CTCLServer
CTCLObjectPackage -- Provide common functionality for a set of related commands.
CTCLPackagedObjectProcessor -- Base class for commands living in a CTCLObjectPackage
CItemConfiguration -- Hold a configuration
CConfigurableObject -- Base class for objects tht have a configuration.
CException -- Abstract base class for the exception class hierarchy.
CErrnoException -- Exceptions that wrap the Unix errno
CRangeError -- Reports and exception for a value out of allowed range.
CStateException -- Exception for invalid state transitions.
CStreamIOError -- I/O error on a C++ stream.
CURIFormatException -- Report errors in universal resource identifiers (uri)s.
CMonitorException -- Exceptions for synchronization class abuse.
CInvalidArgumentException -- Report invalid function arguments.
CTCLApplication 3 --  Base class for TCL/Tk applications.
CTCLException --  Class for reporting exceptional conditions in Tcl applications via the C++ try/catch mechanism.
CTCLInterpreter --  Encapsulate a Tcl interpreter.
CTCLInterpreterObject 3 --  Base class for objects that are associated with a Tcl Interpreter.
CTCLList --  Provide access to Tcl List parsing.
CTCLObject --  Encapsulate Tcl Dual ported objects.
CTCLObjectProcessor --  Abstract base class to encapsulate the Tcl object command interface exposed by Tcl_CreateObjCommand.
CTCLVariable --  Encapsulate Tcl interpreter variables.
CTCLProcessor --  Provide argc, argv extension commands to Tcl.
CTCLChannel --  Provide a C++ abstraction wrapper for Tcl Channels.
CTCLCommandPackage --  Group several related Tcl command extensions and common services they may require together.
CTCLCompatibiltyProcessor --  Adaptor between CTCLOjbectProcessor and CTCLProcessor.
CTCLFileHandler --  Base class for building object oriented Tcl File event handlers.
CTCLHashTable --  Object oriented interface to Tcl's hash table functions.
CTCLHashTableItem --  Encapsulation of an entry in a Tcl Hash table as encapsulated in CTCLHashTable
CTCLHashTableIterator --  Iterator for visiting all elements of a CTCLHashTable
CTCLIdleProcess --  Allows the establishment of an executable object that can be scheduled to be invoked when the Tcl/Tk intperpreter has no events that require processing.
CTCLPackagedCommand --  Base class for a command that lives in a CTCLCommandPackage
CTCLResult --  Provide an object oriented interace to the Tcl interpreter result.
CTCLString --  Provide a wrapper for the Tcl_DString data type and its API
CTCLTimer --  Abstract base class for C++ objects attached to timer events.
CTCLLiveEventLoop -- Run Tcl with event loop.
CTCLChannelCommander -- Accept commands on a Tcl channel from the event loop.
CTCLStdioCommander -- Event driven command input on stdin/stdout
CTCLServer -- Listener for a Tcl server.
CTCLTcpServerInstance -- Channel commander that is a server instance for CTCLServer
CTCLObjectPackage -- Provide common functionality for a set of related commands.
CTCLPackagedObjectProcessor -- Base class for commands living in a CTCLObjectPackage
CItemConfiguration -- Hold a configuration
CConfigurableObject -- Base class for objects tht have a configuration.
CVMEInterface -- Class wrapping of the SBS VME library.
CSBSBit3VmeInterface -- Provide access to SBS/Bit3 driver parameters.
CVME<T> -- Reference counted pointer like object to VME address segments.
CVMEModule -- Provide a base set of services for a VME module driver class.
CMmapError -- Report errors in memory mapping requests.
CADC2530 -- Support the Hytec NADC 2530 Peak sensing ADC.
CAENcard -- Support for the CAEN 32 bit digitizers
CBD8210 -- CES CBD 8210 CAMAC branch highway driver (obsolete)
CCAENV1x90 -- Support for the CAEN V1190 and V1290 multihit, complicated TDC.
CCAENV560 -- Support the CCAENV560 non-latching scaler.
CCAENV830 -- Support driver for the CAEN V820/V830 latching scaler module.
CCAENV977 -- Software support for the CAEN V977 I/O register.
CCAMACScalerLRS2551 -- Support software for the LeCroy LRS 2551 12 channel CAMAC scaler
CCAMACScalerLRS4434 -- High level support software for the 32 channel LeCroy LRS 4434 CAMAC scaler module
CCAMACStatusModule -- Provide computer busy status support for the BiRA CAMAC NIM out module.
CCAMACTrigger -- Trigger module for the CES CBD 8210 VME CAMAC Parallel Branch Highway Driver
CCamac -- Manages CAMAC memory maps.
CCamacModule -- Provide support for a generic CAMAC module.
CCamacNimout -- Provides low level support for the BiRa CAMAC Nim output module.
CCrateController -- Encapsulation of a BiRa 1302 CAMAC controller via CES CBS8210.
CSIS3600 -- Support for the SIS 3600 VME latch module.
CSIS3820 -- Low level support for SIS 3820 32 channel latching scaler module
CScaler -- Abstract base class for reading scalers into a vector
CStatusModule -- Abstract base class for status modules.
CTrigger -- Abstract base class for triggers
CVME -- Pointer like object for accessing the VME
CVMEScalerLRS1151 -- High level support for the LeCroy LRS 1151 VME scaler.
CVMEStatusModule -- Implement a status module using the CAEN V262 module.
CVMETrigger -- VME trigger class based on the CAEN V262 I/O module.
CVMEptr -- 
CaenIO -- Support for the CAEN V262 I/O register module.
CMmapError -- Exception that can be thrown in the event of memory mapping errors.
CNimout -- Low level support for the BiRa VME nim output module
CVmeModule -- Convenience base class for implementing VME module support
CSIS3300 -- Low Level support for the SIS 3300 Flash ADC module
CPortManager -- Provide a C++ interface to the server port manager daemon.
CPortManagerException -- Report errors conditions in port manager transactions
VIII. 3ccusb
addtcldriver -- Register Tcl command ensemble as a device module
ad811 -- Support the Ortec AD811 ADC
c1205 -- Manage CAEN C1205 QDC modules.
c257 -- Manages the C257 scaler module
ccusb (command) -- Configure and read scalers from CC-USB module
lrs2228 -- Manages the LRS2228 TDC
lrs2249 -- Manage LeCroy 2249 QDC modules
lrs2551 -- Manage LRS 2551 modules
ph7xxx -- Define Phillips ADC/TDC/QDC modules
stack -- Create and configure CC-USB stacks.
Module -- Create and manipulate slow control device instances
Slow controls protocol -- TCP/IP slow control protocol
CCCUSB -- Provide access to a CC-USB device.
CCCUSBReadoutList -- Create lists of CAMAC commands for CC-USB controllers.
CConfigurableObject -- base class for devices that have a configuration
cccusb -- Swig wrapping of the CCCUSB C++ class.
cccusbreadoutlist -- Tcl wrapping of CCCUSBReadoutList
IX. 3vmusb
adc -- Create/configure CAEN V775, V785, V792, V862 modules.
caenchain -- Aggregate adc modules into CBLT readout chains.
vmusb -- Control VM-USB resources and read internal scalers
sis330x -- Driver for SIS3300/1 FADC
sis3820 -- Create and configure SIS 3820 scaler modules
v830 -- Create and configure CAEN V830 32 channel scalers.
v977 -- Create and configure CAEN V977 Input registers
sis3804 -- Create and configure SIS 3804 scalers
hinp -- XLM-XXV with Wash-U HINP firmware.
psd -- XLM with Wash-U pulse shape discrmination firmware
hira -- Pair up to 2 XLMs and FADC for HiRA
hytec -- Support the Hytec NADC 2530 adc module.
tcl driver support -- tcl driver support functions.
madc -- Acquire events from Mesytec MADC32 ADC.
madcchain -- Support CBLT chains of MADC32 modules.
madcscaler -- Support dead-time counters in MADC32 as scalers.
mase -- Support for XLM with MASE firmware.
tdc1x90 -- Provide support for the CAEN V1x90 TDC family.
v1729a -- CAENV1729a waveform digitizer.
stack -- Compose and configure VM-USB readout stacks.
CVMUSB -- Interface with VM-USB controller.
CVMUSBReadoutList -- Construct VM-USB stacks
CVMUSBRemote -- Execute lists remotely on VMUSBReadout
CConfigurableObject -- Configuration database
cvmusb -- SWIG Tcl wrapping of CVMUSB
cvmusbreadoutlist -- SWIG wrappers for CVMUSBReadoutList
Module -- control config command: create/configure modules.
watch -- Watch variables (slow controls)
VMUSB slow controls protocol -- VMUSB Slow controls protocol
X. 3tcl
s800 -- s800 Readout Callouts module
caennet -- Access CAENnet from Tcl scripts.
camac -- Provide access to CES CBD8210 CAMAC to Tcl scripts
wienercamac -- Tcl Script CAMAC access via VC32/CC32 boardset.
CFD812 -- low level control of the CAEN V812 CFD
caenv812gui -- Megawidget control panel for the CAEN V812 CFD
n568b -- Support package for the CAEN N568B shaper.
n568Panel -- Control panel megawidget for N568 shaping amplifier
vhq -- Low level Tcl access to iSEG VHQ2xxx units.
vhqPanel -- Control widget for iSeg vhq2xx VME bias supply.
iSegVhs -- SBS support for VHS 404 modules.
VhsWidgets -- User interface components for VHS 404 power supplies.
portAllocator -- Tcl API for the DaqPortManager daemon.
DvdBurner -- Burn NSCL Data to DVD
sequencer --  Provide a ReadoutGui plugin for nscldaq 8.1 and later that can automate several data taking runs.
XI. 3sbsReadout
CBusy -- Abstract base class for Busy module management.
CCAENV262Busy -- Concrete busy class for the CAEN V262 input module.
CCAENV262Triger -- Trigger module with CAEN V262
CCompoundEventSegment -- Container for other event segments
CDocumentedPacket -- Encapsulate event data in a packet that is documented.
CEventPacket -- Encapsulate an event segment in a documented packet.
CEventSegment -- Base class for all event segments.
CEventTrigger -- Abstract base class for triggers.
CExperiment -- Encapsulate the experiment.
CInvalidPacketStateException -- Exception thrown by documented packets.
CNullTrigger -- A trigger that never fires.
CReadoutException -- Base class for readout specific exceptions
CScalerBank -- Container for individual Scaler objects.
CTimedTrigger -- CEventTrigger that fires periodically
CV977Busy -- Concrete busy class using the CAEN V977 module
CV977Trigger -- Concrete Trigger class using CAEN V977 module.
RunState -- Encapsulate important state of the software.
CScaler -- Base class for scaler readout classes
XII. 5daq
eventorderer -- Event orderer protocol
XIII. 5tcl
caen812configfile -- Format of configuration files for CAENV 812 software.
n568configfile -- N568 shaper configuration file
vhqconfig --  Config file for
List of Tables
7-1. Data Acquisition configuration parameters
7-2. Directory root configuration parameters
7-3. State Parameters
47-1. Wiener CC32 addressing convention
List of Figures
7-1. Readout GUI Directory tree
List of Examples
2-1. Adding ringbuffer's directory to bash's search path:
2-2. Adding command paths to csh
5-1. Appending the NSCLDAQ Tcl Package repository to Tcl's search path
5-2. Appending NSLCDAQ's TclPackage repository to Tcl's search path
5-3. Requesting the VME Tcl package be loaded.
5-4. Using VME Tcl to locate all 2530 modules
7-1. ReadoutCallouts.tcl sample extension
15-1. Using serverauth to authorize a node
16-1. Dumping data from the ring buffer named 0400x on spdaq22
16-2. Dumping data from the event file segment /user/0400x/complete/run-1234-00.evt
16-3. State Transition items
16-4. Text List items
16-5. Incremental Scalers dump
16-6. Event count items
16-7. Physics Event items
16-8. Unknown item types
17-1. Converting a ring buffer event file with compatibilitybuffer
17-2. Converting ring buffer data to a 8Kword (16Kbyte) old style event file
17-3. Using compatibilitylogger to convert event files
17-4. Attaching SpecTcl to ring buffers in compatibility mode
18-1. Logging errors and informing on exit
19-1. Requesting the DvdBurner package
19-2. Writing runs to DVD using DvdBurner
19-3. Writing all runs to DVD
21-1. Taking data from a remote ring
22-1. Dumping state changes and sampled event data with od
22-2. Dumping all but packet types
22-3. Attaching SpecTcl
25-1. Loading the sequencer package
26-1. Including the cvt header
26-2. Compiling a C or C++ source file that includes cvt.h
26-3. A makefile rule that builds a C++ program using the cvt package
26-4. Creating a DaqConversion
27-1. Including the header
27-2. Compiling code
27-3. Linking code to the library
28-1. A sample ring specification in URI form
28-2. Substituting local host for the hostname in URI's
28-3. Including the header
28-4. Compiling code that uses CRingAccess
28-5. Linking code that uses CRingAccess
29-1. Compilation line for ring buffer primitives
29-2. Including the ring buffer primitives header
29-3. Linking to the ring buffer primitives
29-4. Sample ring buffer consumer
29-5. A sample Ring Buffer producer program
30-1. Incorporating the ring package in your scripts
31-1. Catching CException and exiting
32-1. Shared memory library example
32-2. Compiling a C++ source that includes daqshm.h
32-3. Linking C++ object files that use the daqshm library
33-1. Compilation switches for the security includes
33-2. Link switches for the security library
33-3. Boilerplate DAQ Authorization code
35-1. The life of a thread
35-2. Why synchonization is needed
35-3. Using SyncGuard to implement a monitor
35-4. Compiling and linking NSCLDAQ threaded software
36-1. Sample URI library program
36-2. Building urltst.cpp
37-1. Connecting to the event builder as a data source.
37-2. Closing an event builder connection
37-3. Starting the event builder
37-4. Establishing the connection callback
37-5. Setting up the disconnect callback
38-1. Including a ring item class
38-2. Telling the compiler where to find Ring Item headers
38-3. Linking the ring item format libraries
39-1. A ReadoutCallouts.tcl for the s800
40-1. Catching CException and exiting
42-1. Catching CException and exiting
47-1. Enabling a module Lam with wienercamac
49-1. The CONNECT message format
49-2. Format of the DISCONNECT message
49-3. Format of the LIST command
49-4. Format of the REGISTER command
49-5. Format of the UNREGISTER message
49-6. Format of the REMOTE message
51-1. The standard startup script explained
52-1. CEVBClientApp definition
52-2. The CEVBRingClientApp class definition.
52-3. The CEVBRingClientApp initialize and shutdown methods.
52-4. The CEVBRingClientApp dataReady method.
52-5. The EVBRingClientApp getEvents implementation.
52-6. Configuring the event builder client framework
52-7. S800 timestamp extractor (s800timestamp.c
54-1. Obtaining the SBS readout skeleton
55-1. Creating and configuring devices
55-2. Configuring an event stack
55-3. Setting up a scaler stack
55-4. Obtaining the ccusb driver development kit
55-5. Using a user written CCUSB driver
55-6. A snit CCUSB device driver module
55-7. CCUSB device support example writtin in Incr Tcl
55-8. DAQ config script fragment with tcl drivers.
56-1. Creating and configuring devices
56-2. Configuring an event stack
56-3. Configuring a VM-USB scaler stack
56-4. Obtaning the VM-USB device driver development kit
56-5. Using a user written VMUSB driver
56-6. The template driver Initialize method
56-7. Template Driver addReadoutList method
56-8. The VMUSB driver Xxxx_Init function.
56-9. Itcl VM-USB device driver
56-10. A Snit VM-USB driver.
56-11. USing a Tcl VM-USB driver.
56-12. Specifying VM-USB monitored variables
1. Attaching SpecTcl to a ring buffer in compatibility mode
1. Running spectcldaq.server
2. Connecting to spectcldaq.server
1. Sample output from ringbuffer status
1. making hex dumps of data from a ring buffer.
1. Using stdintoring
1. Logging extension to readout gui
1. Dumping state changes and sampled event data with od
2. Dumping all but packet types
3. Attaching SpecTcl
1. Starting sclclient
1. Viewing a set of channel values interactively
2. Writing a set of channels to a file
3. Appending a set of channels to a file
4. Piping a set of channels to a program for processing
1. Supporting an observer in a snit type or widget
2. Supporting multiple observers in a snit type or widget
1. Creating a coypright notice on stderr
2. Creating an author credit on stderr
1. Using CRingAccess to connect to a local ring.
2. Using CRingAccess to connect to a remote ring
1. Message filter predicate
1. Calling CStringInteractor specific members
1. evttclsh
1. Selecting sampled event from a ring.
1. Constructing a scaler item from an item gotten from a ring
1. Creating a begin run state transition item
1. evttclsh
1. evttclsh
1. Creating a CAENcard geographically
2. Setting a TDC to common stop mode
3. Reading out a CAEN 785 e.g.
1. Initializing branch 0
1. Using the LRS 1151 in the production readout framework.
1. Creating a device driver via private derivation
2. Creating a device driver via inclusion
1. Allocating a port with the port manager
2. Listing the port allocatiosn on a system.
1. Catching a CPortManagerException
1. AD811 configuration file example
1. LRS2228 creation example
1. The lrs2551 command
1. Using the list command to construct pedestals
2. Sample ph7xxx commands
1. Example of the stack command.
1. Listing CC-USB Serial numbers (Tcl).
2. Creating a CCCUSB object by serial number (Tcl).
1. Sample ADC commands
1. Using the caenchain command.
1. Configuring an SIS3820 scaler module
1. Configuring a CAEN V830 scaler
1. Configuring the SIS 3804 scaler
1. Sample Hytec 2530 configuration
1. Sample use of madc command
1. Building Stacks
1. Hooking update methods to recurring timer
1. Allocating a service port in Tcl
2. Listing allocated ports in Tcl
1. Action script example
2. Sequencer column configuration file
1. Creating and registering a V262 as a busy:
1. Deep iteration of CCompondEventSegment elements
2. Deep visitation of CCompoundEventSegment elements
1. Using the CDocumentedPacket class
1. Catching readout specific examples
1. Deep visitation in CScalerBank containers
1. Outputting the state of the run
1. Sample configuration file
1. Sample configuration file
1. Sample configuration file