Coda

From CLONWiki
Jump to navigation Jump to search

CODA is JLAB data aquisition system software. CLAS version of CODA has some differences and described in current section.

dac directory

Core CODA packages.

proc_thread

Original CODA's second readout list is running as a thread, called 'proc_thread'. It can be run on main host or on pmc co-processor. Main files is 'main/cinclude/roc_process.c'. Main function started as a thread is

void proc_thread(BIGPROC *bigprocptrin, unsigned int offsetin)

where BIGPROC structure contains control parameters including pointers to the input (BIGBUF *gbigBuffer) and output (BIGBUF *gbigBuffer1) big buffers.

write_thread

Last component in coda_roc running as a thread. Main file is 'dac.s/roc_network.c'. Main function started as a thread is

write_thread(BIGNET *bignetptrin, unsigned int offsetin)

where BIGNET structure contains control parameters including pointers to the input (BIGBUF *gbigBuffer) big buffer;

rc directory (run control)

Uses MOTIF as graphics and ACE3.1 as communication package, all sources are available in subdirectories /cg, /motif and /sase3.1. Run control code resides in subdirectory /runControl. Subdirectory /Variables contains some generic stuff, for example daqData contains operators overloading etc.

/Common - set if classes use by other components:

codaIntHash -- codaSList
codaStrHash ------/
rcMsg
rcSvcInfoFinder
rcSvcLocaterRep
   | (friend)
rcServerLocater

/rcClient contains run control client library functions in /src.s and client program example in /main. Library has following structure:

rcClient <- rccDaqData <- codaRcCallback

/rcServer contains run control server library in subdirectories /Components.s, /Constants.s, /Network.s, /Transitioners.s and /src.s, and main program in /main. Most important classes are in /Components.s:

rcServer
  |
  |-- codaIntHash -- 
daqRun - 
  |
  |-- rcsAnaLogVarWriter
  |-- rcsConfFileNameWriter
  |-- rcsDaqData
  |-- rcsDataLimitWriter
  |-- rcsEvLimitWriter
  |-- rcsLogFileDesWriter
  |-- rcsNumEvTrigger
  |-- rcsNumLongTrigger
  |-- rcsRunNumberWriter
  |-- rcsTokenIntervalWriter
  |-- rcsUpdateIWriter
  |
  |-- dbaseReader -- factory -- daqLogComp
  |
  |-- daqCompMonitor
  |
  |-- daqDataUpdater (one pointer)