feat(vesc): integrate native calibration diagnostics and configuration archives
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
"""Read controller settings using the bundled upstream VESC Tool decoder."""
|
||||
import math
|
||||
|
||||
FIELDS = frozenset({"l_current_max", "l_current_min", "l_current_max_scale", "l_current_min_scale",
|
||||
"l_in_current_max", "l_in_current_min", "l_min_erpm", "l_max_erpm", "l_max_duty",
|
||||
"l_watt_max", "l_watt_min", "si_motor_poles", "si_gear_ratio", "si_wheel_diameter"})
|
||||
|
||||
|
||||
def read_limits(link):
|
||||
configuration = link.configuration()
|
||||
result = {}
|
||||
for parameter in configuration["motor"]["parameters"]:
|
||||
name, value = parameter["name"], parameter.get("value")
|
||||
if name in FIELDS and type(value) in (int, float) and math.isfinite(value):
|
||||
result[name] = value
|
||||
if set(result) != FIELDS:
|
||||
raise ValueError("Native configuration is missing limit fields")
|
||||
return result
|
||||
Reference in New Issue
Block a user