in deepracer_offroad_ws/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)