38 std::vector<const confmodel::DaqModule*> modules;
43 std::string dfoUid(
"DFO-" +
UID());
44 TLOG_DEBUG(7) <<
"creating OKS configuration object for DFOModule class ";
45 auto dfoObj = obj_fac.
create(
"DFOModule", dfoUid);
48 dfoObj.set_obj(
"configuration", &dfoConf->config_object());
51 throw(BadConf(
ERS_HERE,
"No DFOConf configuration given"));
54 std::vector<const conffwk::ConfigObject*> output_conns;
55 std::vector<const conffwk::ConfigObject*> input_conns;
61 auto endpoint_class = rule->get_endpoint_class();
62 auto descriptor = rule->get_descriptor();
66 if (descriptor->get_data_type() ==
"TriggerDecision") {
67 if (endpoint_class ==
"DFOModule") {
69 input_conns.push_back(&tdInObj);
71 }
else if (descriptor->get_data_type() ==
"TriggerDecisionToken") {
73 input_conns.push_back(&tokenInObj);
76 else if (descriptor->get_data_type() ==
"TriggerInhibit") {
78 output_conns.push_back(&busyOutObj);
82 if (tdInObj ==
nullptr) {
83 throw(BadConf(
ERS_HERE,
"No TriggerDecision input connection descriptor given"));
85 if (busyOutObj ==
nullptr) {
86 throw(BadConf(
ERS_HERE,
"No TriggerInhibit output connection descriptor given"));
88 if (tokenInObj ==
nullptr) {
89 throw(BadConf(
ERS_HERE,
"No TriggerDecisionToken input connection descriptor given"));
94 auto sessionApps =
session->get_enabled_applications();
95 std::vector<conffwk::ConfigObject> tdOutObjs;
96 for (
auto app : sessionApps) {
102 for (
auto rule : dfNRules) {
103 auto descriptor = rule->get_descriptor();
104 auto data_type = descriptor->get_data_type();
105 if (data_type ==
"TriggerDecision") {
106 tdOutObjs.emplace_back(obj_fac.
create_net_obj(descriptor, dfapp->UID()));
111 for (
auto& tdOut : tdOutObjs) {
112 output_conns.push_back(&tdOut);
115 dfoObj.set_objs(
"inputs", input_conns);
116 dfoObj.set_objs(
"outputs", output_conns);