def set_led_color()

in deepracer_follow_the_leader_ws/webserver_pkg/webserver_pkg/led_api.py [0:0]


def set_led_color():
    """API to call the service to set the tail light LED color
       from the red, green, blue values from front end.

    Returns:
        dict: Execution status if the API call was successful and
              error reason if call fails.
    """
    webserver_node = webserver_publisher_node.get_webserver_node()
    try:
        data = request.json
        if int(data["red"]) < 0 or int(data["red"]) > 255 \
           or int(data["green"]) < 0 or int(data["green"]) > 255 \
           or int(data["blue"]) < 0 or int(data["blue"]) > 255:
            return jsonify(success=False, reason="Input is not valid")
        # Convert to PWM
        red = int(data["red"]) * LED_SCALING_FACTOR
        green = int(data["green"]) * LED_SCALING_FACTOR
        blue = int(data["blue"]) * LED_SCALING_FACTOR
        webserver_node.get_logger().info("Set LED Color: "
                                         f"Red: {red} "
                                         f"Green: {green} "
                                         f"Blue: {blue}")

        set_led_color_req = SetLedCtrlSrv.Request()
        set_led_color_req.red = red
        set_led_color_req.green = green
        set_led_color_req.blue = blue
        set_led_color_res = call_service_sync(webserver_node.set_led_color_cli,
                                              set_led_color_req)
        if set_led_color_res and set_led_color_res.error == 0:
            data = {"success": True}
        else:
            webserver_node.get_logger().error("Set led color service call failed")
            data = {
                "reason": "Error",
                "success": False
            }
        return jsonify(data)

    except Exception as ex:
        webserver_node.get_logger().error(f"Unable to reach set led color server: {ex}")
        return jsonify(success=False, reason="Error")