[LBNE] Add timestamps to Init, Start, Stop, Pause, and Resume commands
In discussions with LBNE DAQ folks, we realized that it is necessary to provide timestamps to their front-end software and hardware that can be used to synchronize the readout timing among their subdetectors and to consistently control data taking among all of the subdetectors.
This translates to the addition of a 64-bit integer (uint64_t?) to our Init, Start, Stop, Pause, and Resume commands. Individual experiments can use this integer as they see fit; LBNE will use it to send a 56-bit timestamp to their FragmentGenerators and hardware modules.
We should implement this in a backward compatible way, and we should think about how to coordinate this request with the request to add transition timeouts to the XMLRPC commands (Issue #5330).
#1 Updated by Kurt Biery about 5 years ago
- modify the appropriate message-handling code xmlrpc_commander to optionally accept a uint64_t for these 5 messages, and default the timestamp to zero (or some other special value?) if none is provided
- modify the Commandable.hh/cc code and the relevant operations in the state machine (Commandable.sm) to include this timestamp (probably no need for defaults here)
- modify BoardReaderCore, EventBuilderCore, and AggregatorCore to include this timestamp in the needed methods
- think about ways to modify CommandableFragmentGenerator and existing classes that extend it so that the timestamp can be provided for LBNE, but we don't break existing FragmentGenerator sub-classes on other experiments
#2 Updated by John Freeman about 5 years ago
- % Done changed from 0 to 100
On the new "timestamps" branch of artdaq (which will be merged in the future into the develop branch, when deemed appropriate):
Timestamp and timeout are now additional (optional) arguments to init, start, pause, resume and stop, as can be seen in the xmlrpc_commander.* files. Timeout, but not timestamp, has been added to shutdown. Currently nothing is actually done with the timeout, but as Kurt and I agreed the timeout argument should appear before the timestamp argument in the function signatures (as it's more likely to be used by all experiments using artdaq), it was agreed that it would be less disruptive to artdaq users if both arguments were added than if we only added timestamp here, and then added timeout in the future.
These changes can now be seen in action if one checks out the new "timestamps" branch of artdaq-demo, specifically created to employ artdaq on ITS "timestamps" branch; here, the ToySimulator fragment generator will print out the timestamp and timeout to screen before executing normally.