NSCL DAQ Software Documentation


Table of Contents
I. user-guide
1. NSCLDAQ In a Nut Shell
1.1. Basics of Data Flow in NSCLDAQ
1.2. Pipeline Building, Run Control, and DAQ Modularization
1.3. Built-in Diagnostics
1.4. Extensibility and Openness
2. The Ring Buffer
2.1. Overview
2.2. Data Transfer and Flow Control
2.3. Proxy Rings, Ring Masters, and Network Transparency
2.4. Ring buffer utilities
3. NSCLDAQ Data Format : The Ring Item
3.1. Generic Ring Item Traits
3.2. The Body Header
3.3. The Ring Item Types
4. VMUSBReadout
4.1. Introduction
4.2. Basic Tenets of VM-USB Operation
4.3. Writing the Configuration Script
4.4. The Slow-Controls Subsystem
4.5. Running the VMUSBReadout program
4.6. Understanding VMUSBReadout Output
4.7. Developing a Timestamp Extractor Library
4.8. Extending the Supported Readout Hardware
4.9. Extending the slow controls subsystem
4.10. Pushing external data into the event stream
5. CCUSBReadout
5.1. How the CCUSB readout framework works
5.2. Writing DAQ configuration files
5.3. Writing device support software
5.4. Tcl device driver support
5.5. The slow controls subsystem
5.6. Running CCUSBReadout
5.7. Writing C++ slow controls device drivers
5.8. Writing Tcl slow controls device drivers
5.9. The ccusbcamac Tcl package
6. ReadoutGUI & ReadoutShell
6.1. Principles of operation
6.2. Operating the user interface
6.3. The event logger and ReadoutShell
6.4. Customizing the ReadoutShell
6.5. Remote control package
7. Event Builder
7.1. Introduction
7.2. Using the event builder
7.3. More detail on when the fragments are ouptutted
7.4. Fragments and Data Format
8. ScalerDisplay
8.1. What is the ScalerDisplay?
8.2. Why does it exist?
8.3. What does it do?
8.4. How to set up the ScalerDisplay
II. simple-setups
9. A Simple VMUSBReadout Experiment Tutorial
9.1. Introduction
9.2. Setting up the Electronics
9.3. The Configuration Files
9.4. Running VMUSBReadout
9.5. Understanding the Output
9.6. Developing a Tailored SpecTcl
9.7. The VMUSBSpecTcl Alternative
9.8. Using SpecTcl
9.9. Conclusion
10. Simple V775 readout
10.1. Introduction
10.2. Setting up the Electronics.
10.3. Creating the Readout program
10.4. Creating the tailored SpecTcl
10.5. Running the system.
10.6. Taking the example further.
10.7. The full readout program.
10.8. The full SpecTcl program.
11. Using NSCLDAQ with a CAEN V785 Peak-Sensing ADC and CAEN V262 IO Register
11.1. PREFACE
11.2. The electronics
11.3. Setting up the software
11.4. The dumper program
11.5. Running the Readout Program
11.6. Interpreting the dumper output
III. device-support
12. Mesytec MCFD-16 Controls
12.1. Overview
12.2. Starting the GUI for USB communication
12.3. Starting the GUI for the RC-bus through an MxDC device
12.4. Configuration menu
12.5. Saving and restoring state
13. Mesytec MSCF-16 Controls
13.1. Overview
13.2. Synchronization Paradigm
13.3. Starting the GUI for USB communication
13.4. Saving and restoring state
14. Wiener MDGG-16 Controls
14.1. Overview
14.2. How to use the MDGG16Control GUI
14.3. Saving and Restoring The State of the GUI Between Sessions
15. XLM72 Gate Delay Control GUI
15.1. Introduction
15.2. Setting up an XLM72 as a gate delay generator for remote control
15.3. Launching the XLM72GateDelayControl
15.4. Overview of Functionality
15.5. The Saved File
16. ULM Trigger GUI
16.1. Configuring CCUSBReadout for Remote Communication
16.2. Launching the ULMTriggerGUI
16.3. Overview of Basic Operation
IV. commands
17. Command line access to CAMAC via the SBS interface
V. utilities
18. Ring piping utilities
19. The dumper program
19.1. Item dump formats and examples
20. The Event log program
21. Boot manager
21.1. Event builders and data sources
21.2. Registered programs
21.3. The environment in which a state sensitiveprogram runs.
21.4. Relevant reference material.
22. The tcl server application
22.1. Tcl server package
23. CAEN V812 Constant Fraction Discriminator
24. N568B CAENnet shaping amplifier
25. VHS-40xxx SBS support.
26. cratelocator
27. Tcl access to the VME via the SBS interface
27.1. Incorporating Vme Tcl in your scripts
27.2. Sample programs that use the package
28. VM/CCUSB Firmware loaders
29. Sequencing runs
29.1. Configuring the sequencer.
29.2. Using the sequencer.
30. The ringselector application
31. Compatibility utilities
31.1. Format conversion with compatibilitybuffer
31.2. Writing event files with compatibilitylogger
31.3. Converting NSCLDAQ-V10.x data to NSCLDAQ-11.x data
31.4. Convenience scripts
31.5. BufferToRing
32. Providing EPICS channel information to Tcl Servers
33. The epics display utility
34. Epics Channel logging
35. vardbsh
35.1. The NSCLDAQ variable database
35.2. The variable database shell; vardbsh
36. inittcl - Tcl interpreter with heavy weight initialization.
37. The state manager
37.1. Application Programming Interfaces to the state manager
38. The Boot utility
38.1. Details of operation
39. Graphically configuring an experiment's dataflow.
39.1. How this all works.
39.2. Defining the dataflow graphically
39.3. Booting and controlling your experiment
VI. servers
40. The RingMaster server
40.1. The RingMaster Protocol
41. Service Port Manager.
42. Variable Database Server
VII. libraries
43. Ring master class library.
44. Networked ring buffer access
45. Ring Buffer Primitives
45.1. Incorporating ring buffer software
45.2. Overview and Examples of ring buffers in action.
46. The Tcl ring package
47. Extensible factory template classes
48. Data Format Support Software
48.1. The basic data formats
48.2. Selecting Data From a Ring Buffer
48.3. Incorporating the headers and libraries into your applications.
48.4. Generic ring data sinks
48.5. Creating ring items
49. Event builder client API
49.1. C++ Client API
49.2. Incorporating the event builder client library
49.3. Connecting to the event builder.
49.4. Disconnecting from the event builder.
49.5. Sending data to the event builder.
49.6. The Event orderer/event builder API
49.7. Callbacks
50. TclRingBuffer Tcl package.
50.1. What is it?
50.2. How do I use it?
50.3. Using TclRingBuffer in event driven software
51. The ccusbcamac tcl package
51.1. Overview
51.2. A simple example
52. SBS VME Module level device support software
53. Tcl CAENet package
54. The CES CBD 8210 Tcl CAMAC Package
54.1. Incorporating camac into your scripts
54.2. An overview of the use of the camac package
55. The Wienercamac Tcl package
55.1. Incorporating wienercamac in your scripts.
55.2. Using wienercamac
56. Integer byte order conversion library
56.1. Using the conversion library in your code
56.2. Byte order signatures and conversion blocks
56.3. Data conversion
57. NSCL DAQ Thread Library
57.1. The thread and synchronization model
57.2. Incorporating the library into an application.
57.3. Using CGaurdedObject to implement synchronized methods
57.4. Thread safe queues (CBufferQueue).
57.5. Pointers to the reference material
58. Access control and security
58.1. Incorporting the software into your code
58.2. Authenticators
58.3. Interactors
59. Parsing and URIs
60. Shared memory
60.1. Overview of the API, and using it from within your C++ software
60.2. Compiling/Linking your software with the shared memory API
61. The Os class
62. io
63. Plotchart
64. TCPIP classes
64.1. Library concepts
64.2. Incorporating the socket library
65. libsqlite3++
65.1. Incorporating libsqlite++ into your programs.
65.2. Major libsqlite++ clases and their use.
66. Variable database API
66.1. C++ Bindings
66.2. Tcl bindings to the variable database.
66.3. Python bindings to the variable database.
67. High level variable database API.
68. Variable database server subscriptions
69. State client API
69.1. State Clients
69.2. The CStateClientApi class
70. State Manager API.
70.1. State managers and what they can do
70.2. A Sample state manager program
70.3. The ReadoutGui
71. C++ encapsulation of a Tcl API subset
72. The NSCL Exception class library
72.1. Incorporating the library in your programs
72.2. Exception classes
VIII. frameworks
73. Injecting variables into the USB data taking frameworks
74. Event orderer and its user interface
74.1. Event orderer design philosophy.
74.2. Using the standard event orderer startup script
74.3. Writing an event orderer startup script
74.4. Event orderer packages
75. Event builder client framework
75.1. Application specific code for the event builder
75.2. Building event builder clients.
75.3. Running event builder clients
75.4. ringFragmentSource - a prepackaged client for ringbuffer data sources
76. Event builder Readout Callouts
76.1. Introduction
76.2. API layer
76.3. EVBC state manager callback bundle.
76.4. EZBuilder
77. Hooking readout programs to the runstate framework
77.1. Complete example
78. The run state framework.
78.1. Variable database structure for run state management
78.2. How state transitions happen
78.3. Command line utilities that build/modify the run control database
79. The SBS Readout framework
79.1. SBS Readout concepts
79.2. Obtaining and building the skeleton application
79.3. Modifying the skeleton application to meet your needs
79.4. Readout commands
79.5. Embedded Tcl server
79.6. Running a readout application
80. Filter framework
80.1. Overview
80.2. Data Format Version Support
80.3. Getting Started
80.4. Defining a filter
80.5. Smart Pointers
80.6. Building a composite filter
80.7. The main function
80.8. Building the filter program
81. The actions library
81.1. Introduction
81.2. How does it work?
81.3. Run Control and Command Execution
81.4. Exemplified Usage of the Actions package
82. Variable data base manager ReadoutCallouts emulator
82.1. Differences Between Variable Database ReadoutCallouts and ReadoutGUI
82.2. Constructing and Registering a Readout Callout script.
83. Service programs
83.1. Describing services in the variable database
83.2. NSCLDAQ service related commands.
83.3. Apis and language bindings
IX. Reference Pages
I. 1compatibility
compatibilitybuffer -- Filter ring items to spectrodaq buffers
convert10to11 -- Filter converting NSCLDAQ10.x to NSCLDAQ11.x data.
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.
bufdump -- Dump NSCLDAQ event files earlier than version 10.0
II. 1daq
ringbuffer -- Manage ring buffers.
ringtostdout -- Transmit data from a ring buffer to stdout.
stdintoring -- Pipe stdin to a ring buffer.
ringstatusdaemon -- Publisher of ring statistics
statusaggregator -- Aggregate status/statistics messages for a host
multiaggregator -- Aggregate status messages from entire data flow
statusinjector -- Aggregate status messages into an sqlite database
LogMessageViewer -- View log messages.
StatusViewer -- Consolidated simple status viewere
ReadoutShell -- Shell wrapper for readout programs.
ReadoutGUIOutputClient -- Readout gui output monitor client.
multilogger -- Log data from multiple rings
frag2ring -- Filter flattened fragments to ring items.
Scaler Display program  -- Display counts and rates in scalers.
dumper -- Produce a formatted dump of event data.
eventlog -- Record Event Data to Disk.
bootmanager -- Boot up and monitor registered DAQ programs.
MakeRunControl.tcl -- Make top level run control directory
addrdo -- Add a readout program to the variable database.
lsrdo -- List readout programs.
rdoonoff -- Enable/Disable a readout program.
resetrdo -- Reset readout statemachine
rmrdo -- Remove a readout program.
ccusbloader -- CC-USB Firmware loader
vmusbloader -- VM-USB Firmware loader
ringselector -- Provide selected ring data to non NSCL DAQ aware clients
tkdumper -- GUI Dump of ring buffer items.
vardbsh -- Variable data base shell
inittcl -- Support for Tcl shell extensions in Tcl.
vardbServer -- Server for variable databases
ReadoutGui -- Run control via variable database
svcwiz -- Wizard to configure standard services
addsysprogram -- Add new system program.
lsservices -- List defined services.
modsysprogram -- Modify the definition of a system program.
rmsysprogram -- Remove a system program definition
svcmanager -- Manage service programs.
svcpropset -- Create/set service properties
boot -- Start and stop experiment components.
evttclsh -- Tcl interpreter that always runs an event loop
III. 1epics
controlpush --  Push epics data into a Tcl Server (e.g. production readout).
chanlog -- Write a set of channels to file
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.
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.
V. 1tcl
DaqPortManager -- Manage TCP/IP service ports and advertise their allocations
tclserver -- Start a Tcl Server.
serverauth -- Control tcl server authorization.
!ModuleName! -- Tabbed notebook for multiple GDG-8 controllers.
ledph7106.tcl -- PH7106 Control application for CCUSBReadout
canev812control -- GUI for controlling CAEN V812 CFD modules
loadcfd -- Load settings in to a CAEN V812 CFD module.
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
loadshaper -- Load setttings into an N568 shaper via SBS/V288.
n568Control -- GUI for the n568 shaper.
vhsPanel -- Canned VHS Control panel
vhqControl -- Control panel application for VHQ bias supply modules.
cratelocator -- locate specific SBS VME crate controllers.
SBS Vme Tcl package -- Provide access to VME crates to Tcl scripts.
epicsdisplay -- Display epics channels
VI. 1sbsReadout
Readout -- Start an event readout program.
VII. 1utilities
vmusbcaenupgrader -- CAEN cvUpgrade ported to VM-USB interface
VIII. 3daq
CRingMaster -- RingMaster access.
CRingAccess -- Remote Ring Access
CConnectivity -- Determine remote systems impacting data flow.
CRingBuffer -- Low level ring buffer primitives
CCreator -- Template base class for extensible factory creators
CExtensibleFactory -- Templated class for building extensible factories
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.
CPhysicsEventItem -- Response to trigger.
CRingPhysicsEventCountItem -- Provides statistics regarding the number of events produced.
CRingFragmentItem -- Encapsulate a EVB_FRAGMENT ring item
CUnknownFragment -- Event fragment likley not containing a ring item
CDataFomatItem -- Describe the format of a stream of ringitems.
CGlomParameters -- Reports event building parameters.
CAbnormaEndItem -- Abnormal end of run.
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.
CDataSink -- Abstract base class for data sinks.
CFileDataSink -- Data sink to a disk file.
CRingDataSink -- Data sink that writes to a CRingBuffer
CDataSinkFactory -- Create an appropriate CDataSink object
CStatusDefinitions -- Classes that emit status messages.
CStatusSubscription -- Manage subscriptions to status messages
CPublishRingStatistics -- Class to publish ring buffer statistics messages
CMultiAggregator -- Aggregate status messages across a data flow.
CStatusDb -- class description
CEvbClientApp -- Framework event builder client application.
CEVBClientFramework -- Event builder client framework.
CEventOrderClient -- Client of the event orderer
CPortManager -- Provide a C++ interface to the server port manager daemon.
CPortManagerException -- Report errors conditions in port manager transactions
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
DAQ::V11::CFilter -- Base class for primitive filters
DAQ::V11::CCompositeFilter -- A composite filter for nscldaq 11.0 data
DAQ::V12::CFilter -- Base class for 12.0 filters
DAQ::V12::CCompositeFilter -- A composite filter for nscldaq 12.0 data
DAQ::V12::CFilterAbstraction -- The data format abstraction for nscldaq 12.0
DAQ::V11::CFilterAbstraction -- The data format abstraction for nscldaq 11.0
cvt -- Integer byte order conversions
Thread -- Abstract base class for thread objects.
CSynchronizedThread -- Thread with synchronized initialization
Synchronizable -- Wait queue for threads
SyncGuard -- Provide Critical Regions, Monitors
CMutex -- C++ encapsulation of pthread mutexes.
CriticalSection -- Simple, safe critical section
CCondition -- Encapsulate POSIX condition variables.
CGaurdedObject -- Provide entry/exit guards for object critical regions.
CBufferQueue -- Templated class for safe inter-thread messaging.
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.
URL -- Parse Uniform Resource Identifiers (URI)
CopyrightNotice -- Generate license/author credits.
io -- Binary I/O operations.
Os -- Operating system interfaces.
CDAQShm -- class description
NSCLZmq -- Auto cleanup factory for Zmq objects
CSocket -- Encapsulation of a socket file descriptor.
CTCPBadSocketState -- class description
CTCPConnectionFailed -- Exception thrown for TCP/IP connection failures.
CTCPConnectionLost -- Exception thrown when connection to peer is lost
CTCPNoSuchHost -- CTCPNoSuchHost
CTCPNoSuchService -- Exception thrown if a nonexistent service is referenced
CVariableDb -- Encapsulate connections to variable database files.
CVarDirTree -- Variable Database Directory Tree
CVariable -- Operations on variables in variable databases
CEnumeration -- Support variable database enumeration types.
CStateMachine -- Manipulate state machine data types.
CTypeFactory -- Generate variable database type objects
CDataType -- Base class for variable database type objects
CDataTypeCreator -- Create specific CDataType objects (ABC) (variable database).
CUnknownTypeHandler -- Abstract base class for unknown type handlers (variable database)
CVarMgrApi -- Defines the variable manager API.
CVarMgrFactory -- Producer of CVarMgrApi objects.
CVarMgrSubscriptions -- Subscribe to variable database manager changes.
CStateTransitionMonitor -- Low level state transition message pump
CStateClientApi -- Api for state cilent programs (high level).
CStateProgram -- API for manipulating state sensitive program definitions
CStateManager -- API for state manager programs.
CZMQEventLoop -- Event loop for fd's and zmq sockets
classname -- Base class for state monitor classess
CStateMonitor -- State monitor with callbacks.
CServiceApi -- Define and manipulate DAQ system services.
CVardbEventBuilder -- C++ API to variable database description of event builder/sources
CVardbRingBuffer -- C++ API to create/manipulate ring buffer descriptions
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.
IX. 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
marker -- Create/manipulate marker instances
ph7xxx -- Define Phillips ADC/TDC/QDC modules
stack -- Create and configure CC-USB stacks.
Module -- Create and manipulate slow control device instances
CamacCrate -- group modules into a crate
LeCroy4300B -- control a LeCroy 4300B FERA
LeCroy4434 -- control a LeCroy 4434 Scaler
LeCroy2551 -- control a LeCroy 2551 Scaler
ULMTrigger -- control a LeCroy 2637 ULM running trigger firmware
Slow controls protocol -- TCP/IP slow control protocol
CCCUSB -- Provide access to a CC-USB device.
CCCUSBusb -- Provide access to a connected CC-USB device.
CCCUSBRemote -- Provide remote access to a CC-USB device through CCUSBReadout's slow-controls server.
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
CModuleFactory -- Creates specific slow control drivers
CModuleCreator -- Object creational ABC for CModuleFactory
CControlHardware -- Base class (ABC) of a slow controls driver
CControlModule -- Configuration and wrapper for CControlHardware
CCCUSBControl -- A slow-controls driver for receiving and executing remote commands
ccusbcamac -- Tcl Script CAMAC access CCUSBReadout slow-controls server
ph7106Widget -- Control panel for Ph7106 LED
X. 3evb
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::registerRingSource -- Register a ring fragment source to the RingSourceMgr.
EVBC::startRingSource -- Start a ring fragment source for the event builder.
EVBC::startS800Source -- Start S800 data source
EVBC::initialize -- Initialize the EZBuilder layer.
EVBC::onBegin -- EZBuilder begin run actions
EVBC::onEnd -- EZBuilder end run actions.
Eventbuilder callback bundle -- Event builder callback bundle.
Event builder client framework -- Event builder cilent framework
RingSourceMgr -- A callout bundle that spawns ringFragmentSource processes.
XI. 3rdogui
Introduction -- ReadoutGUI API introduction
bells -- Provide audible alarm bells.
Configuration -- Configuration variable management
DAQParameters -- Cluster of configuration parameters for data acquisition
DataSourceManager -- Data source manager and its API
DataSourceUI -- Data source parameter user interface
Diagnostics -- Provide error warning and message dialogs
ExpFileSystemConfig -- Configuration cluster for event directory tree
ReadoutGui -- ReadoutGui elements.
ReadoutGUIPanel -- ReadoutGUI Convenience commands
RunStateMachine -- Run control state machine
StateManager -- Save restore program state variables.
ui -- ReadoutGUI graphical user interface elements.
OutputWindowSettings -- Prompter for OutputWindow settings.
StatusArea -- Status area megawidget
XII. 3provider
Introduction -- Data source providers
parameters -- Describe data source parameterization
start -- Start a data source
check -- Check Data Source Liveness
stop -- Stop data sources
begin -- Start data taking in a data source
pause -- Pause a data taking run (optional)
resume -- Resume a Paused Run
end -- End a Data Taking Run
init -- On-demand initialize procedure
capabilities -- Get Provider Capabilities Dict
SSHPipe -- SSHPipe data source provider.
s800 -- s800 data source provider.
Delay -- Inserts a delay between data provider begins
XIII. 3python
nscldaq.ringbuffer.ringmaster.ringmaster -- Provide access to some methods in the CRingBuffer C++ API.
nscldaq.ringbuffer.ringmaster.connectivity -- Get information about the systems that are getting/putting data to a host.
RingStatistics -- Python bindings to the RingStatistics class
ReadoutStatistics -- Python bindings for readout statistics message class.
LogMessage -- Python bindings to class for emitting log messages.
StateChange -- Python class to emit state change status messages.
Subscription -- Subscripton class for status messages.
statusmessages.decode -- class description
statusmessages.startAggregation -- Start multinode status aggregation for python scripts.
nscldaq.status.statusdb -- Python bindings to the status database API (CStatusDb)
PortManager -- Python bindings to port manager
vardb --  Encapsulates the CVariableDb C++ class
dirtree --  Python encpapsulation of CVarDirTree
variable -- Encapsulate variable database variables.
enum -- Python bindings to enum types (variable database)
nscldaq.vardb.statemachine -- Python wrappers for manipulating state machines
nscldaq.vardb.varmgr -- Python bindings to variable manager API.
nscldaq.vardb.notifier -- Python bindings for variable database publish/subscribe API
statemanager -- Python bindings for CStateManager class.
State manager utilities -- State Manager utilities
StateMonitor -- State transition dispatching
nscldaq.vardb.services -- Access to nscldaq services database.
VardbEvb -- Python bindings to the Variable Database event builder definitions
VardbRingbuffer -- Python bindings to CVardbRingBuffer API class.
XIV. 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
sis3300 -- Simplified sis3300 support.
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
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.
mtdc -- Mesytec 32/34 channel TDC
mqdc -- Support Mesytec MQDC-32 modules
madcchain -- Support CBLT chains of Mesytec MxDC32 family of 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
CControlHardware -- Base class for slow controls drivers
cvmusb -- SWIG Tcl wrapping of CVMUSB
cvmusbreadoutlist -- SWIG wrappers for CVMUSBReadoutList
Module -- control config command: create/configure modules.
watch -- Watch variables (slow controls)
delay -- Insert a stack delay.
CBDCamacBranch -- run a CAMAC branch through a CES CBD8210 bridge
CBDCamacCrate -- group CBD8210 compatible modules into a crate
CBDLeCroy4300B -- control a LeCroy 4300B FERA on a CAMAC branch
CBDLeCroy4434 -- control a LeCroy 4434 Scaler on a CAMAC branch
CBDLeCroy2551 -- control a LeCroy 2551 Scaler on a CAMAC branch
CBDULMTrigger -- control a LeCroy 2637 ULM running trigger firmware on a CAMAC branch
XLMTimestamp -- control an XLM running 64-bit latching scaler firmware
marker -- Insert a constant into the VMUSB data stream
XLMFERA -- control an XLM72V running firmware to readout FERA via ECL ports
AXLM72ScalerControl -- slow-controls driver for controlling an XLM72 running 32-ch scaler firmware
XLM72ScalerGUI -- Diagnostics GUI for controlling an XLM72 running 32 ch scaler firmware
AXLM72 -- TCL base class for JTech XLM72 family of devices
AXLM72Scaler -- Driver for an XLM72 running 32-channel scaler firmware
v1495sc -- CAEN V1495 with Scaler firmware
controlClient -- Object to interact with VM/CCusb control server
USB Control operations -- connect, controlOp, listUSBControlServers
slowControlsPrompter -- Prompt for slow controls server host and port
gdgcontrol -- Slow control client of Wiener/JTec MGGD8
gdgwidget -- Widget to control/display GDG-8.
V6533Driver -- Driver for CAEN V6533 HV modules
XV. 3tcl
TCL Ring package. -- Access Rings from tcl.
RingStatistics -- Tcl command to produce ring statistics messages.
ReadoutStatistics -- Tcl commands to emit readout statistics.
LogMessage -- Emit log messages.
StateChange -- Tcl bindingss to create state change status messages
statusSubscription -- Manage subscriptions to the status system.
statusdecode -- Decode status messages into Tcl usable form
statusaggregator -- Start a multi-node status aggregation thread for Tcl scripts.
statusdb -- Tcl bindings to CStatusDb
TclRingBuffer -- Tcl ring buffer consumer package
portAllocator -- Tcl API for the DaqPortManager daemon.
TclServer -- Embeddable Tcl Server script object
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
iSegVhs -- SBS support for VHS 404 modules.
VhsWidgets -- User interface components for VHS 404 power supplies.
vhq -- Low level Tcl access to iSEG VHQ2xxx units.
vhqPanel -- Control widget for iSeg vhq2xx VME bias supply.
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.
sequencer --  Provide a ReadoutGui plugin for nscldaq 8.1 and later that can automate several data taking runs.
plotcontainer -- Plotchart XY plot wrapper
marker -- Manage markers on a plotchart plot.
FrameManager -- Make one of a set of widgets visible.
FrameSequencer -- Manages a sequence of widgets (like a wizard e.g.).
RingStatus -- Widget that shows ring status.
ScaleControl -- Megawidget intended for axis scale control
TransientLabel -- Label widget that transforms to default.
Process -- Simplified asynchronous pipeline handling
TclSourceFilter -- Extract blocs mathing a regexp from a script
Utils -- Tcl namespace with useful utility procs.
vardb -- Tcl Bindings to Variable Database API
varmgr -- Tcl Bindings to Variable Database API
varmgr::subscribe -- Tcl bindings to the variable database publish/subscribe service.
stateclient -- Tcl bindings to CStateClientApi
statemanager -- Tcl Bindings to the CStateManager class.
ReadoutCalloutsHarness -- Run ReadoutCallouts.tcl scripts under database run control.
daqservices -- Tcl bindings to CServiceApi
vardbEventBuilder -- Tcl API to variable database event builder definitions.
vardbringbuffer -- Tcl bindings to the CVardbRingBuffer class
XVI. 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
XVII. 3sqlite++
Introduction -- C++ Sqlite wrappers.
CSqlite -- Encapslated sqlite connecstion
CSqliteStatement -- Immediate and prepared sqlite statements
CSqliteTransaction -- Transaction encapsulation
CSqliteSavePoint -- Support for SAVEPOINT transactions
CSqliteException -- Exceptions for SQLite errors.
CQueryFilter classes -- Classes that construct where clause bodies.
XVIII. 5daq
Status Database Schema -- Status Database tables
eventorderer -- Event orderer protocol
Variable Database Schema -- Variable Database Schema
vardbServer REQ message formats -- vardbServer
Variable database server published messages -- vardbServer
Variable data base schema for event builders -- Store event builder/data source configurations in vardb
Ringbuffer schema -- Variable database representation of ring buffers.
XIX. 5tcl
caen812configfile -- Format of configuration files for CAENV 812 software.
n568configfile -- N568 shaper configuration file
vhqconfig --  Config file for
XX. 5vmusb
VMUSB slow controls protocol -- VMUSB Slow controls protocol
List of Tables
3-1. Ring Item Top-Level Memory Layout
3-2. Body Header
3-3. Ring Item With Body Header
3-4. Ring Item Without Body Header
3-5. Ring Item Types
3-6. Predefined State Change Body Layout
3-7. Predefined Text Item Body Layout
3-8. Predefined Scaler Item Body Layout
3-9. Predefined Physics Event Count Body Layout
3-10. Predefined Data Format Body Layout
3-11. Predefined Glom Information Body Layout
6-1. Event logger environment variables
6-2. Experiment file systems environment variables
6-3. SSHPipe prompter environment variables
7-1. Fragment header
7-2. Body of Built PHYSICS_EVENT
55-1. Wiener CC32 addressing convention
69-1. State aware program response to state changes
78-1. Run State Transition table
1. Readmode and Read and clear implications
1. log_messages table fields
2. ring_buffer fields
3. ring_client Fields
4. ring_client_statistics fields
5. state_applications fields
6. state_transitions fields.
7. readout_program fields.
8. run_info fields
9. readout_statistics
List of Figures
6-1. ReadoutShell's state diagram
6-2. ReadoutShell's GUI
6-3. The Eventlog settings dialog
6-4. Readout GUI Directory tree
9-1. Block diagram of the V775 and V785 wiring
9-2. Block diagram of SIS3820 scaler wiring
10-1. V775 Simple setup electronics block diagram.
11-1. A simple electronics setup for the CAEN V785
11-2. Pulser Output Signal
11-3. Amplifer Output Signal
11-4. Amplified Signal with Logic Pulser
11-5. Amplified Signal and Gate
12-1. The MCFD16Control Graphical User Interface for USB
12-2. MCFD16Control Graphical User Interface for MxDC-RCbus
12-3. Channel Enable/Disable Configuration Dialog
12-4. OR Pattern Configuration Dialog
13-1. The MSCF16Control Graphical User Interface for USB
14-1. MDGG16Control Graphical User Interface
15-1. Screenshot of XLM72GateDelayControl
16-1. Screenshot of ULMTriggerGUI
37-1. Experiment (State manager) State Diagram
39-1. Parts of the experiment editor
39-2. Property Editor for a Readout Program object/tool
39-3. Example of an invalid experiment
39-4. State diagram for the run control system
1. S800 Trigger GUI
List of Examples
4-1. Creating and configuring devices
4-2. A Sample Controls Configuration
4-3. A sample getEventTimestamp() implementation
4-4. Defining a null getScalerTimestamp()
4-5. Adding an offset to the timestamp
4-6. Obtaning the VM-USB device driver development kit
4-7. Using a user written VMUSB driver
4-8. The template driver Initialize method
4-9. Template Driver addReadoutList method
4-10. The VMUSB driver Xxxx_Init function.
4-11. Itcl VM-USB device driver
4-12. A Snit VM-USB driver.
4-13. USing a Tcl VM-USB driver.
4-14. Control driver headers
4-15. Control driver class definition
4-16. Control driver constructor
4-17. Control driver onAttach method
4-18. Control driver Update
4-19. Control driver Set method.
4-20. Control driver Get method
4-21. Control driver clone method
4-22. Control driver creator
4-23. Control driver initialization
4-24. Control drivers - structure of a Tcl driver
4-25. Tcl control driver Initialize method
4-26. Tcl control driver Update method
4-27. Tcl control driver Set method
4-28. Tcl control driver Get method
4-29. Tcl control drer addMonitorList method
4-30. Tcl control driver processMonitorList method
4-31. Tcl control driver getMonitoredData method
4-32. Tcl control driver validation
4-33. Specifying VM-USB monitored variables
5-1. Creating and configuring devices
5-2. Configuring an event stack
5-3. Setting up a scaler stack
5-4. Obtaining the ccusb driver development kit
5-5. Using a user written CCUSB driver
5-6. A snit CCUSB device driver module
5-7. CCUSB device support example writtin in Incr Tcl
5-8. DAQ config script fragment with tcl drivers.
5-9. Obtaining the sample CCUSB slow controls driver
5-10. Headers for the CCUSB sample slow controls driver
5-11. CCUSB Slow control driver class definition
5-12. The constructor and destructor
5-13. CCUSB Slow controls driver OnAttach
5-14. CCUSB Slow controls driver initialize method
5-15. CCUSB Slow controls driver Update
5-16. CCUSB Slow controls driver Set method
5-17. CCUSB slow controls Get method
5-18. CCUSB Slow controls clone method
5-19. Module creator for the CCUSB Sample slow controls driver
5-20. CCUSB Slow control driver initialization function
5-21. CCUSB Slow controls driver Skeleton Makefile
5-22. CCUSB Tcl slow controls driver skeleton
5-23. CCUSB Tcl slow controls driver construction
5-24. CCUSB Tcl slow controls initialization
5-25. CCUSB Tcl Slow Controls Update
5-26. CCUSB Tcl Slow controls driver Set
5-27. CCUSB Tcl Slow Control driver Get
5-28. CCUSB Slow controls Tcl driver option validation
5-29. Using the Tcl sample driver in a configuration script.
5-30. Enabling a module Lam with ccusbcamac
6-1. Custom ReadoutGUI startup script
10-1. V775 Event Segment (V775EventSegment.h).
10-2. v775 Event Segment (V775EventSegment.cpp) - file heading
10-3. v775 Event Segment (V775EventSegment.cpp) - Constructor
10-4. v775 Event Segment (V775EventSegment.cpp) - Initialization
10-5. v775 Event Segment (V775EventSegment.cpp) - reading data
10-6. V775 data ready trigger header (MyTrigger.h)
10-7. V775 data ready trigger implementation (MyTrigger.cpp)
10-8. Copying in the SpecTcl-v3.4 skeleton
10-9. Raw TDC unpacker (RawUnpacker.h)
10-10. v775 raw unpacker implementation includes and defs (RawUnpacker.cpp)
10-11. V775 raw unpacker - getLong utility (RawUnpacker.cpp)
10-12. V775 raw unpacker object constructor/destructor (RawUnpacker.cpp)
10-13. v75 raw unpacker unpacking events (RawUnpacker.cpp)
10-14. Defining raw Time spectra the hard way.
10-15. Header for time difference event processor (Tdiff.h)
10-16. CTdiff implementation (Tdiff.cpp)
10-17. Setting up ssh for password-less login
10-18. Creating an event area for a small amount of data
10-19. Makefile
10-20. Skeleton.cpp
10-21. V775EventSegment.h
10-22. V775EventSegment.cpp
10-23. MyTrigger.h
10-24. MyTrigger.cpp
10-25. RawUnpacker.h
10-26. RawUnpacker.cpp
10-27. spectra.tcl
10-28. SpecTclRC.tcl
10-29. Tdiff.h
10-30. Tdiff.cpp
11-1. Header for MyEventSegment
11-2. Impementation of CMyEventSegment
11-3. The Packet Data
19-1. Dumping data from the ring buffer named 0400x on spdaq22
19-2. Dumping data from the event file segment /user/0400x/complete/run-1234-00.evt
19-3. State Transition items
19-4. Text List items
19-5. Incremental Scalers dump
19-6. Event count items
19-7. Physics Event items
19-8. Unknown item types
20-1. Taking data from a remote ring
22-1. Using serverauth to authorize a node
27-1. Appending the NSCLDAQ Tcl Package repository to Tcl's search path
27-2. Appending NSLCDAQ's TclPackage repository to Tcl's search path
27-3. Requesting the VME Tcl package be loaded.
27-4. Using VME Tcl to locate all 2530 modules
29-1. Loading the sequencer package
30-1. Dumping state changes and sampled event data with od
30-2. Dumping all but packet types
30-3. Attaching SpecTcl
31-1. Converting a ring buffer event file with compatibilitybuffer
31-2. Converting ring buffer data to a 8Kword (16Kbyte) old style event file
31-3. Using compatibilitylogger to convert event files
31-4. convert10to11 - converting event files
31-5. Attaching SpecTcl to ring buffers in compatibility mode
37-1. Tcl client of the state manager
37-2. C++ client for the state manager.
37-3. Monitoring the state manager in Python
37-4. Command line state changer
39-1. Readout Initialization script for the distributed state manager
39-2. Wrapper script to put ReadoutCallouts.tcl in to the state manager
40-1. The CONNECT message format
40-2. Format of the DISCONNECT message
40-3. Format of the LIST command
40-4. Format of the REGISTER command
40-5. Format of the UNREGISTER message
40-6. Format of the REMOTE message
43-1. Including the header
43-2. Compiling code
43-3. Linking code to the library
44-1. A sample ring specification in URI form
44-2. Substituting local host for the hostname in URI's
44-3. Including the header
44-4. Compiling code that uses CRingAccess
44-5. Linking code that uses CRingAccess
45-1. Compilation line for ring buffer primitives
45-2. Including the ring buffer primitives header
45-3. Linking to the ring buffer primitives
45-4. Sample ring buffer consumer
45-5. A sample Ring Buffer producer program
46-1. Incorporating the ring package in your scripts
47-1. Writing creators for the abstract factory.
47-2. Creating the factory as a singleton
48-1. Including a ring item class
48-2. Telling the compiler where to find Ring Item headers
48-3. Linking the ring item format libraries
49-1. Connecting to the event builder as a data source.
49-2. Closing an event builder connection
49-3. Starting the event builder
49-4. Establishing the connection callback
49-5. Setting up the disconnect callback
50-1. Processing ring items in Tcl.
50-2. The Scaler Display ring buffer thread
55-1. Enabling a module Lam with wienercamac
56-1. Including the cvt header
56-2. Compiling a C or C++ source file that includes cvt.h
56-3. A makefile rule that builds a C++ program using the cvt package
56-4. Creating a DaqConversion
57-1. The life of a thread
57-2. Why synchonization is needed
57-3. Using SyncGuard to implement a monitor
57-4. Compiling and linking NSCLDAQ threaded software
57-5. Using CGaurdedObject
57-6. Sending data to a CBufferQueue
57-7. Consumer of data from a CBufferQueue
58-1. Compilation switches for the security includes
58-2. Link switches for the security library
58-3. Boilerplate DAQ Authorization code
59-1. Sample URI library program
59-2. Building urltst.cpp
60-1. Shared memory library example
60-2. Compiling a C++ source that includes daqshm.h
60-3. Linking C++ object files that use the daqshm library
65-1. Compiling and linking a libsqlite++ program:
65-2. Opening an in memory database and getting its handle.
65-3. CSqliteStatement::execute example:
65-4. Using prepared statements and result sets.
65-5. libsqlite++ Transactions
66-1. C++ example for the variable database API
66-2. Tcl example of the variable database API
66-3. Python example of the variable database API.
67-1. Using the High level variable database API.
68-1. Simple subscription example
69-1. Creating a CStateClient object
69-2. Receiving state transitions
69-3. handleTransition signature
69-4. Transition to NotReady
69-5. Beginning transition
70-1. Createing a CStateManager Object
70-2. Starting a run.
70-3. Tracking the state changes to start a run
72-1. Catching CException and exiting
73-1. The watch command.
74-1. The standard startup script explained
75-1. CEVBClientApp definition
75-2. The CEVBRingClientApp class definition.
75-3. The CEVBRingClientApp initialize and shutdown methods.
75-4. The CEVBRingClientApp dataReady method.
75-5. The EVBRingClientApp getEvents implementation.
75-6. Configuring the event builder client framework
75-7. S800 timestamp extractor (s800timestamp.c
76-1. Using the EVBC state manager callback bundle
77-1. loadcontrol.tcl - load StateManagerControl
77-2. runreadout.bash - file to run readout:
77-3. Adding the program to the run state system:
79-1. Passing the ring buffer to the construction of an Event segment.
79-2. Creating Events
79-3. Obtaining the SBS readout skeleton
82-1. State manager readout callouts script
1. Uncompressing NSCLDAQ-10.x data and converting it to NSCLDAQ-11 format
1. Attaching SpecTcl to a ring buffer in compatibility mode
1. Running spectcldaq.server
2. Connecting to spectcldaq.server
1. Dumping all data from an old style event file
2. Dumping all data but event data from an old style event file
3. Dumping all but physics data from several event files
1. Sample output from ringbuffer status
1. making hex dumps of data from a ring buffer.
1. Using stdintoring
1. Dumping state changes and sampled event data with od
2. Dumping all but packet types
3. Attaching SpecTcl
1. Sample use of inittcl
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. Using CRingAccess to connect to a local ring.
2. Using CRingAccess to connect to a remote ring
1. Message filter predicate
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. Allocating a port with the port manager
2. Listing the port allocatiosn on a system.
1. Catching a CPortManagerException
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. Calling CStringInteractor specific members
1. Creating a coypright notice on stderr
2. Creating an author credit on stderr
1. Creating and using ZmqSockets
1. Enumerated type handler
1. evttclsh
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. A simple crate setup containing a single scaler
1. A simple setup of one FERA
1. A simple setup of one scaler
1. A simple setup of a single scaler
1. A simple setup of a single ULM
1. Listing CC-USB Serial numbers (Tcl).
2. Creating a CCCUSB object by serial number (Tcl).
1. bell example
1. Sample use of the DialogWrapper
1. A do nothing RunstateMachine callout bundle
1. Getters and setters for StateManager
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. Sample use of mqdc command for timestamping with external oscillator
2. Sample configuration of mqdc for event counting and interrupt readout
1. Sample usage
1. Building Stacks
1. A simple delay example
1. Sample setup of two camac crates on branch 0
1. Sample setup of a single LeCroy 2551
1. Sample setup of a few FERAs
1. Sample setup of a single scaler
1. Simple setup of a single scaler
1. Setup of a single ULM trigger module
1. Simple setup of a single timestamp module
1. Simple setup of a single timestamp module
1. Simple setup of the AXLM72ScalerControl
1. Example ctlconfig.tcl entry
1. Allocating a service port in Tcl
2. Listing allocated ports in Tcl
1. Hooking update methods to recurring timer
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. Determining if a new state is legal for a variable
1. Sample configuration file
1. Sample configuration file
1. Sample configuration file