bool LedMgr::setLedCtrlHdl()

in servo_pkg/src/led_mgr.cpp [75:101]


    bool LedMgr::setLedCtrlHdl(const std::shared_ptr<rmw_request_id_t> request_header,
                               const std::shared_ptr<deepracer_interfaces_pkg::srv::SetLedCtrlSrv::Request> req,
                               std::shared_ptr<deepracer_interfaces_pkg::srv::SetLedCtrlSrv::Response> res) {
        (void)request_header;
        RCLCPP_INFO(logger_, "LedMgr pwm channel on R-G-B %d-%d-%d", req->red, req->green, req->blue);
        res->error = 0;
        if (req->red < 0 || req->red > 10000000 ||
                req->green < 0 || req->green > 10000000 ||
                req->blue < 0 || req->blue > 10000000) {
            RCLCPP_ERROR(logger_, "Invalid LED color combination: R-G-B %d-%d-%d", req->red, req->green, req->blue);
            res->error = 1;
            return false;
        }

        ledVec_[red]->setDuty(req->red);
        ledVec_[green]->setDuty(req->green);
        ledVec_[blue]->setDuty(req->blue);

        // Write the updated values in the file
        ledValuesMap_[RED_CHANNEL_KEY] = req->red;
        ledValuesMap_[GREEN_CHANNEL_KEY] = req->green;
        ledValuesMap_[BLUE_CHANNEL_KEY] = req->blue;

        writeLedValJSON(ledValuesMap_, LED_VAL_PATH);

        return true;
    }