def api_get_calibration()

in webserver_pkg/webserver_pkg/calibration.py [0:0]


def api_get_calibration(cali_type):
    """API to call the service to get the calibration from file with the current
       calibration.

    Args:
        cali_type (int): Calibration type identifying steering/throttle calibration.

    Returns:
        dict: Execution status if the API call was successful.
    """
    state = 0 if cali_type == "angle" else 1
    conversion = PWM_ANGLE_CONVERSION if state == 0 else PWM_THROTTLE_CONVERSION
    webserver_node = webserver_publisher_node.get_webserver_node()
    try:
        get_cal_req = GetCalibrationSrv.Request()
        get_cal_req.cal_type = state
        get_cal_res = call_service_sync(webserver_node.get_cal_cli, get_cal_req)
        if get_cal_res is None or get_cal_res.error != 0:
            return api_fail("Unable to reach get vehicle calibration server")
    except Exception as ex:
        webserver_node.get_logger().error(f"Unable to reach get vehicle calibration server: {ex}")
        return api_fail("Unable to reach get vehicle calibration server")

    converted_min = (get_cal_res.min - PWM_OFFSET) / conversion
    converted_max = (get_cal_res.max - PWM_OFFSET) / conversion
    data = {
        "mid": (get_cal_res.mid - PWM_OFFSET) / conversion,
        "min": (converted_min if (get_cal_res.polarity) else converted_max),
        "max": (converted_max if (get_cal_res.polarity) else converted_min),
        "polarity": get_cal_res.polarity,
        "success": True
    }
    webserver_node.get_logger().info(f"Current calibration state: {state} "
                                     f"MID: {data['mid']} "
                                     f"MIN: {data['min']} "
                                     f"MAX: {data['max']} "
                                     f"Polarity: {data['polarity']}")
    return jsonify(data)