19 auto inputs =
data().get_child(
"inputs");
20 const std::string prefix{
"ctpin.slot"};
21 const std::string suffix{
".connector"};
22 const std::string emptyStr{};
23 for(
size_t slot = 7; slot<=9; ++slot) {
24 const std::string slotStr = std::to_string(slot);
25 for(
size_t conn=0; conn<4; ++conn) {
26 m_ctpin[slot-7][conn] = inputs.get_optional<std::string>(prefix + slotStr + suffix + std::to_string(conn)).get_value_or(emptyStr);
29 const auto &
electrical = inputs.get_child(
"electrical");
30 const std::string connectorStr{
"connector"};
31 for(
size_t i=0; i<3; ++i) {
32 m_electrical[i] =
electrical.get_optional<std::string>(connectorStr + std::to_string(i)).get_value_or(emptyStr);
34 if(
auto optical = inputs.get_child_optional(
"optical")) {
35 for(
size_t i=0; i<12; ++i) {
36 m_optical[i] =
optical->get_optional<std::string>(connectorStr + std::to_string(i)).get_value_or(emptyStr);
39 const std::string multiplicityStr{
"multiplicity"};
40 const std::string thrStr{
"thr"};
41 for(
auto & mon :
data().get_child(
"monitoring.ctpmon") ) {
42 std::string monName = mon.first;
43 size_t multiplicity = mon.second.get_child(multiplicityStr).get_value<
size_t>();
44 std::string thr = mon.second.get_child(thrStr).get_value<std::string>();
45 m_ctpmon.emplace( std::piecewise_construct,
46 std::forward_as_tuple(monName),
47 std::forward_as_tuple(multiplicity, thr)
50 auto ctpinMon =
data().get_child_optional(
"monitoring.ctpin");
53 std::string monName = mon.first;
54 size_t multiplicity = mon.second.get_child(multiplicityStr).get_value<
size_t>();
55 std::string thr = mon.second.get_child(thrStr).get_value<std::string>();
57 std::forward_as_tuple(monName),
58 std::forward_as_tuple(multiplicity, thr)