5#include <proto/main.pb.h>
8#include "utils/logging.h"
10#include "protocol/protocol_oob.h"
14 switch (time.prefix) {
16 prefix = 1'000'000'000;
29 return prefix * time.value;
32run::RunConfig run::RunConfig::from_buf(
const pb_RunConfig &config) {
43 if (config.has_halt_on_overload)
44 run.halt_on_overload = config.halt_on_overload;
46 if (config.has_repetitive)
47 run.streaming = config.streaming;
49 if (config.has_repetitive)
50 run.repetitive = config.repetitive;
52 if (config.has_write_run_state_changes)
53 run.write_run_state_changes = config.write_run_state_changes;
58run::CalibrationConfig run::CalibrationConfig::from(
const pb_CalibrationConfig &item) {
59 auto&
carrier = carrier::Carrier::get();
60 bool is_leader = item.has_leader && std::string(item.leader.path) ==
carrier.get_entity_id();
61 return {item.gain != pb_CalibrationConfig_Kind_Disabled, is_leader};
67 const RunConfig &config,
68 std::unique_ptr<RunDataHandler> data_handler,
69 const daq::DAQConfig &daq_config,
70 const mode::SyncConfig &sync_config
74 daq_config(daq_config),
75 sync_config(sync_config),
76 data_handler(std::move(data_handler)) {
80run::Run run::Run::decode(
81 const pb_StartRunCommand& start_run_command,
82 std::unique_ptr<RunDataHandler> data_handler
84 auto run_config = RunConfig::from_buf(start_run_command.run_config);
85 auto daq_config = daq::DAQConfig::from_buf(start_run_command.daq_config);
86 auto sync_config = mode::SyncConfig::from_pb(start_run_command.sync_config);
88 start_run_command.run.id,
90 std::move(data_handler),
97run::RunStateChange run::Run::to(run::RunState new_state,
unsigned int t) {
100 return {t, old, state};
uint64_t time2nanos(pb_Time time)