Psyllid
v1.12.4
Project 8 Data Acquisisition Software
|
Controls psyllid's status and forwards requests to the DAQ nodes. More...
#include <daq_control.hh>
Classes | |
class | run_error |
class | status_error |
Public Types | |
enum | status : uint32_t { deactivated = 0, activating = 2, activated = 4, running = 5, deactivating = 6, canceled = 8, do_restart = 9, done = 10, error = 200 } |
![]() | |
typedef std::shared_ptr< daq_control > | dc_ptr_t |
Public Member Functions | |
daq_control (const scarab::param_node &a_master_config, std::shared_ptr< stream_manager > a_mgr) | |
virtual | ~daq_control () |
void | initialize () |
Pre-execution initialization (call after setting the control_access pointer) More... | |
void | execute (std::condition_variable &a_ready_condition_variable, std::mutex &a_ready_mutex) |
Run the DAQ control thread. More... | |
void | activate () |
void | reactivate () |
void | deactivate () |
bool | is_ready_at_startup () const |
void | start_run () |
void | stop_run () |
void | apply_config (const std::string &a_node_name, const scarab::param_node &a_config) |
void | dump_config (const std::string &a_node_name, scarab::param_node &a_config) |
bool | run_command (const std::string &a_node_name, const std::string &a_cmd, const scarab::param_node &a_args) |
dripline::reply_ptr_t | handle_activate_daq_control (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_reactivate_daq_control (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_deactivate_daq_control (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_start_run_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_stop_run_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_apply_config_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_dump_config_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_run_command_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_set_filename_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_set_description_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_set_duration_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_set_use_monarch_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_get_status_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_get_filename_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_get_description_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_get_duration_request (const dripline::request_ptr_t a_request) |
dripline::reply_ptr_t | handle_get_use_monarch_request (const dripline::request_ptr_t a_request) |
void | set_filename (const std::string &a_filename, unsigned a_file_num=0) |
const std::string & | get_filename (unsigned a_file_num=0) |
void | set_description (const std::string &a_desc, unsigned a_file_num=0) |
const std::string & | get_description (unsigned a_file_num=0) |
snake_case_mv_accessible (unsigned, run_duration) | |
snake_case_mv_accessible (bool, use_monarch) | |
status | get_status () const |
void | set_status (status a_status) |
![]() | |
control_access () | |
virtual | ~control_access () |
Static Public Member Functions | |
static uint32_t | status_to_uint (status a_status) |
static status | uint_to_status (uint32_t a_value) |
static std::string | interpret_status (status a_status) |
![]() | |
static void | set_daq_control (std::weak_ptr< daq_control > a_daq_control) |
Private Member Functions | |
void | do_cancellation (int a_code) |
void | do_run (unsigned a_duration) |
Private Attributes | |
std::condition_variable | f_activation_condition |
std::mutex | f_daq_mutex |
std::shared_ptr< stream_manager > | f_node_manager |
scarab::param_node | f_daq_config |
midge_package | f_midge_pkg |
active_node_bindings * | f_node_bindings |
std::condition_variable | f_run_stopper |
std::mutex | f_run_stop_mutex |
bool | f_do_break_run |
std::future< void > | f_run_return |
message_relayer * | f_msg_relay |
std::atomic< status > | f_status |
Additional Inherited Members | |
![]() | |
dc_ptr_t | use_daq_control () |
bool | daq_control_expired () |
![]() | |
static std::weak_ptr< daq_control > | f_daq_control = std::weak_ptr< daq_control >() |
Controls psyllid's status and forwards requests to the DAQ nodes.
Handles all requests received via request_receiver that don't affect the stream setup directly. It switches between daq-states, starts and stops runs by un-pausing and pausing midge and forwards run-daq-commands.
DAQ states:
Startup readiness: whether the DAQ control is ready for use after startup depends on whether it was told to activate on startup or not:
Settings that can be applied in the "daq" section of the master config:
Definition at line 60 of file daq_control.hh.
|
strong |
Enumerator | |
---|---|
deactivated | |
activating | |
activated | |
running | |
deactivating | |
canceled | |
do_restart | |
done | |
error |
Definition at line 179 of file daq_control.hh.
daq_control | ( | const scarab::param_node & | a_master_config, |
std::shared_ptr< stream_manager > | a_mgr | ||
) |
Definition at line 39 of file daq_control.cc.
|
virtual |
Definition at line 66 of file daq_control.cc.
void activate | ( | ) |
Start the DAQ into the activated state Can throw daq_control::status_error; daq_control will still be usable Can throw psyllid::error; daq_control will NOT be usable
Definition at line 271 of file daq_control.cc.
void apply_config | ( | const std::string & | a_node_name, |
const scarab::param_node & | a_config | ||
) |
Definition at line 506 of file daq_control.cc.
void deactivate | ( | ) |
Returns the DAQ to the deactivated state Can throw daq_control::status_error; daq_control will still be usable Can throw psyllid::error; daq_control will NOT be usable
Definition at line 300 of file daq_control.cc.
|
private |
Definition at line 481 of file daq_control.cc.
|
private |
Definition at line 355 of file daq_control.cc.
void dump_config | ( | const std::string & | a_node_name, |
scarab::param_node & | a_config | ||
) |
Definition at line 531 of file daq_control.cc.
void execute | ( | std::condition_variable & | a_ready_condition_variable, |
std::mutex & | a_ready_mutex | ||
) |
Run the DAQ control thread.
Definition at line 76 of file daq_control.cc.
const std::string & get_description | ( | unsigned | a_file_num = 0 | ) |
Definition at line 1064 of file daq_control.cc.
const std::string & get_filename | ( | unsigned | a_file_num = 0 | ) |
Definition at line 1039 of file daq_control.cc.
|
inline |
Definition at line 205 of file daq_control.hh.
dripline::reply_ptr_t handle_activate_daq_control | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 591 of file daq_control.cc.
dripline::reply_ptr_t handle_apply_config_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 684 of file daq_control.cc.
dripline::reply_ptr_t handle_deactivate_daq_control | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 617 of file daq_control.cc.
dripline::reply_ptr_t handle_dump_config_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 758 of file daq_control.cc.
dripline::reply_ptr_t handle_get_description_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 981 of file daq_control.cc.
dripline::reply_ptr_t handle_get_duration_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 1003 of file daq_control.cc.
dripline::reply_ptr_t handle_get_filename_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 959 of file daq_control.cc.
dripline::reply_ptr_t handle_get_status_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 944 of file daq_control.cc.
dripline::reply_ptr_t handle_get_use_monarch_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 1014 of file daq_control.cc.
dripline::reply_ptr_t handle_reactivate_daq_control | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 604 of file daq_control.cc.
dripline::reply_ptr_t handle_run_command_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 817 of file daq_control.cc.
dripline::reply_ptr_t handle_set_description_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 888 of file daq_control.cc.
dripline::reply_ptr_t handle_set_duration_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 910 of file daq_control.cc.
dripline::reply_ptr_t handle_set_filename_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 867 of file daq_control.cc.
dripline::reply_ptr_t handle_set_use_monarch_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 930 of file daq_control.cc.
dripline::reply_ptr_t handle_start_run_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 630 of file daq_control.cc.
dripline::reply_ptr_t handle_stop_run_request | ( | const dripline::request_ptr_t | a_request | ) |
Definition at line 671 of file daq_control.cc.
void initialize | ( | ) |
Pre-execution initialization (call after setting the control_access pointer)
Definition at line 70 of file daq_control.cc.
|
static |
Definition at line 1084 of file daq_control.cc.
bool is_ready_at_startup | ( | ) | const |
Definition at line 324 of file daq_control.cc.
void reactivate | ( | ) |
Restarts the DAQ into the activated state Can throw daq_control::status_error; daq_control will still be usable Can throw psyllid::error; daq_control will NOT be usable
Definition at line 292 of file daq_control.cc.
bool run_command | ( | const std::string & | a_node_name, |
const std::string & | a_cmd, | ||
const scarab::param_node & | a_args | ||
) |
Instruct a node to run a command Throws psyllid::error if the command fails; returns false if the command is not recognized
Definition at line 561 of file daq_control.cc.
void set_description | ( | const std::string & | a_desc, |
unsigned | a_file_num = 0 |
||
) |
Definition at line 1051 of file daq_control.cc.
void set_filename | ( | const std::string & | a_filename, |
unsigned | a_file_num = 0 |
||
) |
Definition at line 1026 of file daq_control.cc.
|
inline |
Definition at line 210 of file daq_control.hh.
snake_case_mv_accessible | ( | unsigned | , |
run_duration | |||
) |
snake_case_mv_accessible | ( | bool | , |
use_monarch | |||
) |
void start_run | ( | ) |
Start a run Can throw daq_control::run_error or status_error; daq_control will still be usable Can throw psyllid::error; daq_control will NOT be usable Stop run with stop_run()
Definition at line 329 of file daq_control.cc.
|
static |
Definition at line 1076 of file daq_control.cc.
void stop_run | ( | ) |
Stop a run Can throw daq_control::run_error or status_error; daq_control will still be usable Can throw psyllid::error; daq_control will NOT be usable
Definition at line 466 of file daq_control.cc.
|
static |
Definition at line 1080 of file daq_control.cc.
|
private |
Definition at line 149 of file daq_control.hh.
|
private |
Definition at line 154 of file daq_control.hh.
|
private |
Definition at line 150 of file daq_control.hh.
|
private |
Definition at line 161 of file daq_control.hh.
|
private |
Definition at line 156 of file daq_control.hh.
|
private |
Definition at line 165 of file daq_control.hh.
|
private |
Definition at line 157 of file daq_control.hh.
|
private |
Definition at line 152 of file daq_control.hh.
|
private |
Definition at line 163 of file daq_control.hh.
|
private |
Definition at line 160 of file daq_control.hh.
|
private |
Definition at line 159 of file daq_control.hh.
|
private |
Definition at line 200 of file daq_control.hh.