CODA: Difference between revisions
Line 20: | Line 20: | ||
3. In network thread, 'roc_network::net_thread()' loop send 'end' event to EB, see 'ifend' flag in it, break loop | 3. In network thread, 'roc_network::net_thread()' loop send 'end' event to EB, see 'ifend' flag in it, break loop, sleep(1), cleanup big buffers, call 'roc_network::LINK_close' which calls 'shutdown(socket, 2)' and 'close(socket)' closing connection to EB | ||
== VME Controllers: Intel-based FANUC under RHEL OS == | == VME Controllers: Intel-based FANUC under RHEL OS == |
Revision as of 13:51, 2 May 2019
CODA is DAQ software designed and supported by JLAB CODA group. This section contains some information related to the use of CODA in Hall B.
End transition
Executed in the order opposite to 'Go' transition: TS ROC first, then all remaining ROCs, then EB.
1. 'coda_roc::codaEnd()' called, it does following:
- call 'ROL1::__end()' routine; it disables triggers and calls 'blocksLeft = tiBReady()' until nothing left, or until timeout
- call 'codaUpdateStatus("ending")', sets 'tcpState = rocp->state = DA_ENDING' and 'rocp->active = 2'
2. inside 'coda_roc::output_proc_network' loop: after exiting current loop iteration execute 'case DA_ENDING':
- make sure the output buffer gets sent if there is any data in it
- make sure we have the last event in the output buffer
- call informEB(EV_END) to send 'End' event to EB
- call codaUpdateStatus("downloaded"), set tcpState = rocp->state = DA_DOWNLOADED
3. In network thread, 'roc_network::net_thread()' loop send 'end' event to EB, see 'ifend' flag in it, break loop, sleep(1), cleanup big buffers, call 'roc_network::LINK_close' which calls 'shutdown(socket, 2)' and 'close(socket)' closing connection to EB
VME Controllers: Intel-based FANUC under RHEL OS
CODA group install RHEL OS into flash memory, so it boot after power recycle. Auto mount and some other stuff must be adjusted for clon cluster: