-
Notifications
You must be signed in to change notification settings - Fork 1
FSM
The FSM operates the DAQ infrastructure. The FSM commands are executed as
<command> <options>
for which is one of the FSMCommands (black arrow) defined here and each state (green box) is an FSMConfiguration defined here. FSMCommands can be run as FSMSequences (yellow lines) which execute a series of FSMCommands, as described here. These are ran analogously to FSMCommands.
Before and after certain transitions, there are FSMactions that are associated with certain FSMCommands, as defined here.
Three configurations are currently available:
fsmConf-test
fsmConf-prod
FSMConfiguration_noAction
-
none
- apps have not been booted -
initial
- app constructors have been ran -
configured
- queues and connections have been initialized -
ready
- TPs are being generated, but dropped at the DFO -
running
- TPs are being generated and stored to disk -
dataflow_drained
- TPs are being generated, but not propagated to the TRBs. DFO and DQM aplications stopped. Requests and fragments drained from queues -
trigger_sources_stopped
- TPs are no longer being generated. HSI, sources, and readout fully stopped.
These are the black arrows defined in the diagram. They are:
Transition name | Corresponding drunc command |
Note |
---|---|---|
(same with .replace("_","-").lower()
|
||
conf |
conf |
configure the apps by ingesting the parameters from the configuration file |
start |
start |
start a run, allocating a run number. Initializes queues and connections |
enable_triggers |
enable-triggers |
start generating TPs, TDs are not propagated to the DFO |
disable_triggers |
disable-triggers |
stop collecting generated TPs to file |
drain_dataflow |
drain-dataflow |
stop propagating TDs to the TRBs |
stop_trigger_sources |
stop-trigger-sources |
stop generating TPs |
stop |
stop |
stop the rest of the apps |
scrap |
scrap |
basically no op (PL thinks?), intended to remove all the configuration parameters from the applications |
- usvc-provided-run-number - microservice (usvc) generates the run number. Will be used in production, not so much at the moment.
- file-logbook - generates a logbook as a file in the directory from which
drunc
was spawned. Takes the file name as an argument. - elisa-logbook - pushes an entry to the ELisA logbook (instructions)
- db-run-registry -
- thread-pinning - has a
pre-conf
,post-conf
, andpost-start
variable. Contains the file with the thread pinning configuration to attach specific processes to specific threads.
The listings provide the actions in the order of execution. Any actions presented with parentheses e.g. (file-logbook
) are optional.
-
pre
-usvc-provided-run-number
anddb-run-registry
-
post
- (file-logbook
),thread-pinning
, andelisa-logbook
-
pre
-usvc-provided-run-number
andfile-run-registry
-
post
- (file-logbook
) andthread-pinning
-
pre
-thread-pinning
-
post
-thread-pinning
-
post
- (db-run-registry
), (file-logbook
), (elisa-logbook
)
-
post
- (file-logbook
)
These define a sequence of FSM commands pregrouped. These are executed in the order that they are presented in. They are currently only defined on the client side. They are executed as normal FSM commands. The existing sequences are in yellow in the diagram at the top of the screen. The sequences are
-
start_run
- executesconf
,start
, andenable_triggers
-
stop_run
- executesdisable_triggers
,drain_dataflow
,stop_trigger_sources
, andstop
-
shutdown
- executesdisable_triggers
,drain_dataflow
,stop_trigger_sources
,stop
, andscrap
- Home
- Release notes
- Roadmap
- Check before merging
- Setup
- Operation
- Developers
- Testing