void LedMgr::setLedValFromFile()

in servo_pkg/src/led_mgr.cpp [123:144]


    void LedMgr::setLedValFromFile(std::unordered_map<std::string, int> &ledValuesMap,
                        const std::string &filePath) {
        Json::Value ledJsonValue;
        Json::Reader reader;
        std::ifstream ifs(filePath);

        if (!reader.parse(ifs, ledJsonValue)) {
            RCLCPP_ERROR(logger_, "Error parsing led_value.json");
            return;
        }
        if (!ledJsonValue.isMember(LED_HEADER_KEY)) {
            RCLCPP_ERROR(logger_, "Led value file error: No led header");
            return;
        }
        if (!ledJsonValue[LED_HEADER_KEY].isMember(RED_CHANNEL_KEY) || !ledJsonValue[LED_HEADER_KEY].isMember(GREEN_CHANNEL_KEY) || !ledJsonValue[LED_HEADER_KEY].isMember(BLUE_CHANNEL_KEY)) {
            RCLCPP_ERROR(logger_, "Led value file error: Missing channel keys");
            return;
        }
        ledValuesMap[RED_CHANNEL_KEY] = ledJsonValue[LED_HEADER_KEY][RED_CHANNEL_KEY].asInt();
        ledValuesMap[GREEN_CHANNEL_KEY] = ledJsonValue[LED_HEADER_KEY][GREEN_CHANNEL_KEY].asInt();
        ledValuesMap[BLUE_CHANNEL_KEY] = ledJsonValue[LED_HEADER_KEY][BLUE_CHANNEL_KEY].asInt();
    }