Coda: Difference between revisions

From CLONWiki
Jump to navigation Jump to search
Line 21: Line 21:
Uses MOTIF as graphics and ACE3.1 as communication package, all sources are available in subdirectories ''/cg'', ''/motif'' and ''/sase3.1''.
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.
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'' contains run control client  library functions in ''/src.s'' and client program example in ''/main''. Library has following structure:
Line 27: Line 38:


''/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'' 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 -  
  daqRun -  
Line 42: Line 57:
   |-- rcsUpdateIWriter
   |-- rcsUpdateIWriter
   |
   |
   |-- dbaseReader - database access
   |-- dbaseReader -- factory -- daqLogComp
  |
  |-- daqCompMonitor
  |
  |-- daqDataUpdater (one pointer)

Revision as of 10:11, 9 April 2014

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)