III. Reference material

Table of Contents
16. Introduction to reference material
I. The NSCL Exception class library
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.
II. VME interface software
CVMEInterface -- Interface independent access to the VME bus for C++
CSBSBit3VmeInterface -- Support for SBS/Bit3 specific functions.
WienerVMEInterface -- Wiener PCI/DA-VC32 support software.
WienerUSBVMEInterface -- "Dumb" support for the VM-USB
Vme --  Provide access to the VME from Tcl and Tk scripts.
III. Module level device support software
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
IV. Low Level CAMAC support
cesmacros -- Low level support for the CES CBD 8210 VME Camac Branch Highway Driver
weinermacros -- CAMAC macros for the VC32/CC32 camac controller.
camactcl --  Provide Tcl support for access to CAMAC crates via the CES CBD 8210 VME branch highway driver.
V. The Classic Readout Skeleton.
Readout Classic Skeleton -- User provided software for Readout Classic
DAQWordBufferPtr - pointer to spectrodaq buffers -- Access to spectrodaq buffers
VI. Threaded application framework
CObjectRegistry -- Registry for named objects.
CClassifiedObjectRegistry -- A collection of named object registries.
CNamedObject -- Base class for objects that have names and type information
CRegisteredObject -- Base class for objects to be registered in a CClassifiedObjectRegistry
CApplicationRegistry -- A singleton CClassifiedObjectRegistry
CDuplicateNameException -- Exception thrown for object name clashes
CNoSuchObjectException -- Exception thrown on registry search failures.
CRefptr -- Provide referenced counted pointers/garbage collection
CThreadRecursiveMutex" -- Provide a mutex that can do balanced lock/unlocks.
CApplicationSerializer" -- Singleton object providing an application global recursive mutex.
CEvent -- Base class for event monitors
CEventMonitor" -- Detect the presence of an event.
CReactor" -- Base class encapsulating code responding to an event
CTimerMonitor -- Event monitoring for timers.
CTimerEvent -- Base class for an all-in-1 timer.
CBufferMonitor -- Provides an event monitor for spectrodaq buffer arrival.
CBufferReactor -- React to buffer events from CBufferMonitor
CBufferEvent -- Package spectrodaq buffer processing in a single class.
CFdMonitor -- Monitor events on a file descriptor.
CFdReactor -- Provides an abstract base class that reacts to file events.
CFileEvent -- An easy to use bundle for adding application coe to file events.
CLocationEvent -- Perform application specific code in response to changes in memory.
CLocationMonitor -- Monitor locations in memory for specific types of changes.
CLocationReactor -- Abstract base class to react to location monitors
CPointerPredicate -- Abstract Base Class for location monitor predicates
CChangedPredicate" -- Pre-written CPointerPredicate testing for changes.
CMaskedValuePredicate -- Pointer predicate that does bit field operations
CSocket -- Wrap TCP/IP sockets
CServerConnectionEvent -- Event for server CSocket connections
CServerInstance -- Encapsulate a TCP/IP server instance
CInterpreterStartup -- Common code for starting Tcl interpreters event loops.
CTCLInterpreterStartup -- Start a Tcl interpreter in a guest event loop.
CTKInterpreterStartup -- Start a Tk interpreter (wish)
CTCLSynchronizeCommand -- sync Tcl command class.
CDAQTCLProcessor -- Tcl command that is synchronized with applications
CIncompatibleMonitor -- Exception to report incompatible monitor/reactor pairs.
CLinkFailedException -- Report spectrodaq link failures.
CTCPBadSocketState -- Exception to report usage errors of CSocket
CTCPConnectionFailed -- Report connection failures for CSocket
CTCPConnectionLost -- Report loss of connection with a peer.
CTCPNoSuchHost -- Report failures to resolve hostnames.
CTCPNoSuchService -- Report failure to resolve a service name.
CDuplicateSingleton -- Report creation of a second singleton
CNoSuchLinkException -- Report a nonexistent or failed link to the data service
VII. The production Readout Skeleton.
CReadoutMain -- Production Readout Configuration Class
CExperiment -- The production readout experiment object/class.
CRunState -- Encapsulates the run state and allowed transition knowledge
CEventSegment -- Base class for event segments.
CInterpreterCore -- TCL Interpreter core extensions
CTclAuthorizer -- Authorizes or rejects Tcl server connections.
CInterpreterShell -- Bridge base calss between Interpreter startup and Interpreter core classes
CTimer -- Schedule objects for periodic execution
CRunVariable -- Encapsulates varying items that are periocally logged during a run.
CStateVariable -- TCL Variable that is constant during a run.
CStateVariableCommand -- Manipulate State variables via command or C++
CRunVariableCommand -- Class that contains code to manipulate run variables.
CScalerBank -- Container for scalers.
CDocumentedPacket -- Support for event packets that are documented in documentation buffers.
CCompoundEventSegment -- Compound Event segment.
CScalerTrigger -- Abstract base class for scaler readout triggers
CBadTransitionException -- Exception class for invalid run state transitions
CBeginCommand -- Attempts to start a run via command.
CPauseCommand -- Processes the pause command
CEndCommand -- Process the end command.
CResumeCommand -- Responds to the resume command
CConstVariableCommand -- Process the const Tcl command extension.
CTagBaseCommand -- Alter default buffer tagging.
CExitCommand -- Replacement exit command.
CConstVariable -- Extends CTCLVariable for consts.
CTimedEvent -- Encapsulates operations to be scheduled periodically.
CInvalidPacketStateException -- Exception that reports an invalid use of CDocumentedPacket
VIII. Production Readout command referenced
const --  Create and maniuplate script constants.
runvar --  Create and manipulate variables that may change at get logged in a run
statevar --  Create and manipulate run state variables
tagbase --  Latent support to relocate the spectrodaq buffer tagging base.
IX. C++ encapsulation of a Tcl API subset
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.
X. NSCL Event logging program
eventlog --  Create event files from data submitted to a system's Spectrodaq buffer manager.
XI. bcnaf
bcnaf -- Execute CAMAC operations as shell commands.
XII. EPICS Support
chanlog -- Write a set of channels to file
controlpush -- Periodically push epics channels to a TclServer.
epicsdisplay -- Display epics channels
XIII. daqstart
daqstart -- Monitor essential programs
17. NSCL Graphical buffer dumper
17.1. bufdump quickstart guide
17.2. Introduction to bufdump concepts
17.2.1. Data sources
17.2.2. Bit patterns
17.2.3. Buffer filters
17.2.4. Search patterns
17.2.5. Packets and packet definition files
17.2.6. Plugins
17.3. Commands on the File menu
17.3.1. File->Open...
17.3.2. File->Read Packet Defs...
17.3.3. File->Add Plugin...
17.3.4. File->Exit
17.4. Commands on the Filter menu
17.4.1. Filter->Filter...
17.4.2. Filter->Search... (Ctrl-F)
17.4.3. Filter->Search Next (F3)
17.5. Commands on the Help menu
17.5.1. Help->About...
17.5.2. Help->Topics... (F1)
17.6. Extending bufdump
17.6.1. Preparing packet definition files
17.6.2. Writing formatting plugins for the bufdump program.
XIV. Service Port Manager.
DaqPortManager -- Manage TCP/IP service ports and advertise their allocations
CPortManager -- Provide a C++ interface to the server port manager daemon.
CPortManagerException -- Report errors conditions in port manager transactions
portAllocator -- Tcl API for the DaqPortManager daemon.
XV. VME crate monitoring
powerdetect -- Show status of a VME crate
cratemonitor -- Notify users when a crate goes offline
cratelocator -- Determine which VME crate is which.
XVI. Scaler Display Software.
sclclient -- Maintain scaler state in a tclserver
ScalerDisplay -- Live Scaler Displays
XVII. sequencer.
sequencer --  Provide a ReadoutGui plugin for nscldaq 8.1 and later that can automate several data taking runs.
XVIII. Slow controls.
CFD812 -- Control package for CAEN V812 VME constant fraction modules.
CFDState -- Remember the state of a CAEN V812.
caenv812gui -- CAENV812 control widget
caenv812control -- Gui to control CAEN V812 CFDs
loadcfd -- Load a CAEN V812 constant fraction via command line.
caen812configfile -- Format of configuration files for CAEN V812 software
vhq -- TCL Package to control ISEG VHQ202x power supplies.
vhqControl -- Control program for vhq 2xx
vhqPanel -- VHQ 2xx control panel widget
vhqconfig -- Configure VHQ applications
n568b -- Control package for CAEN N568B shaping amplifier
n568Panel -- Megawidget that controls an N568 shaping amplifier.
n568Control -- GUI control panel for CAEN N568 shaping amplifiers.
loadshaper -- command line utility to load N568b shaper modules.
n568configfile -- Configuration file for loadshaper(1tcl) and n568control(1tcl)
XIX. spectclonline
spectcldaq -- Adapt between NSCL DAQ and non NSCL DAQ aware clients.
18. NSCL DAQ Readout GUI
18.1. Running and configuring the Readout GUI
18.1.1. Readout GUI startup command line
18.1.2. Configuration files and environment variables
18.2. Operating the Readout GUI
18.3. Extending the Readout GUI
18.3.1. ReadoutCallouts.tcl callbacks
18.3.2. ReadoutGUI's API
18.4. File directory structure enforced by ReadoutGUI
18.4.1. The Event Data view
18.4.2. The Run View
19. The tcl server application
19.1. The TclServer protection model.
19.2. TclServer reference page.
tclserver -- Start a Tcl Server.
serverauth -- Control tcl server authorization.
XX. spectrodaq Status and widgets
spdaqstat -- Package of spectrodaq status functions.
spdaqwidgets::freepagesgraph -- Graphical display of spectrodaq free buffer level
spdaqwidgets::bufferusage -- Display the set of nodes and processes using spectrodaq buffers