in sensor_fusion_pkg/src/sensor_fusion_node.cpp [453:478]
void writeSensorConfigJSON(const std::unordered_map<std::string, std::unordered_map<std::string, float>> &sensorConfiguration,
const std::string &filePath) {
try {
Json::Value sensorConfigJsonValue;
auto itLidarConfig = sensorConfiguration.find(LIDAR_KEY);
auto itLidarOverlayConfig = sensorConfiguration.find(LIDAR_OVERLAY_KEY);
if (itLidarConfig != sensorConfiguration.end() && itLidarOverlayConfig != sensorConfiguration.end()) {
for (auto lidarConfigMap : itLidarConfig->second) {
sensorConfigJsonValue[LIDAR_KEY][lidarConfigMap.first] = lidarConfigMap.second;
}
for (auto lidarOverlayConfigMap : itLidarOverlayConfig->second) {
sensorConfigJsonValue[LIDAR_OVERLAY_KEY][lidarOverlayConfigMap.first] = lidarOverlayConfigMap.second;
}
}
else {
RCLCPP_ERROR(this->get_logger(), "Invalid sensor configuration map");
return;
}
writeJSONToFile(sensorConfigJsonValue, filePath);
}
catch (const std::exception &ex) {
RCLCPP_ERROR(this->get_logger(), "writeSensorConfigJSON failed: %s", ex.what());
}
}