31 if (it->first.find(
"board_") == 0) {
39 std::map<uint8_t, size_t> sensor_counts;
40 std::map<uint8_t, std::vector<uint8_t>> sensor_channels;
42 for (
const auto&
board : boards) {
43 for (
const auto& sensor :
board.sensors) {
44 sensor_counts[sensor.sensor_type]++;
45 sensor_channels[sensor.sensor_type].push_back(sensor.channel_id);
50 if (sensor_counts.find(0x01) != sensor_counts.end()) {
51 config_[
"sensors"][
"enable_pt"] =
"true";
52 config_[
"sensors"][
"pt_count"] = std::to_string(sensor_counts[0x01]);
54 for (
size_t i = 0; i < sensor_channels[0x01].size(); ++i) {
57 channels += std::to_string(sensor_channels[0x01][i]);
62 if (sensor_counts.find(0x02) != sensor_counts.end()) {
63 config_[
"sensors"][
"enable_tc"] =
"true";
64 config_[
"sensors"][
"tc_count"] = std::to_string(sensor_counts[0x02]);
66 for (
size_t i = 0; i < sensor_channels[0x02].size(); ++i) {
69 channels += std::to_string(sensor_channels[0x02][i]);
74 if (sensor_counts.find(0x03) != sensor_counts.end()) {
75 config_[
"sensors"][
"enable_rtd"] =
"true";
76 config_[
"sensors"][
"rtd_count"] = std::to_string(sensor_counts[0x03]);
78 for (
size_t i = 0; i < sensor_channels[0x03].size(); ++i) {
81 channels += std::to_string(sensor_channels[0x03][i]);
86 if (sensor_counts.find(0x04) != sensor_counts.end()) {
87 config_[
"sensors"][
"enable_lc"] =
"true";
88 config_[
"sensors"][
"lc_count"] = std::to_string(sensor_counts[0x04]);
90 for (
size_t i = 0; i < sensor_channels[0x04].size(); ++i) {
93 channels += std::to_string(sensor_channels[0x04][i]);
100 for (
const auto&
board : boards) {
101 std::string board_key =
"board_" + std::to_string(board_idx++);
103 config_[board_key][
"port"] = std::to_string(
board.port);
105 config_[board_key][
"board_id"] =
"0x" + std::to_string(
board.signature.board_id);
106 config_[board_key][
"board_type"] = std::to_string(
board.signature.board_type);
107 config_[board_key][
"max_sensors"] = std::to_string(
board.max_sensors);
108 config_[board_key][
"active_sensors"] = std::to_string(
board.active_sensors);
111 std::cout <<
"[DynamicConfig] Updated config with " << boards.size() <<
" boards" << std::endl;