feat(vesc): integrate native calibration diagnostics and configuration archives
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
"""Interpret the admitted FW 5.02 PPM input before its firmware deadband.
|
||||
|
||||
app_ppm.c publishes input_val before utils_deadband. A nonzero decoded value
|
||||
inside app_ppm_conf.hyst is therefore not a motor command. Do not infer radio
|
||||
link presence from this value: the receiver can keep emitting failsafe pulses.
|
||||
"""
|
||||
import math
|
||||
|
||||
|
||||
def neutral_band(application):
|
||||
band = application["app_ppm_conf.hyst"]
|
||||
if (application["app_to_use"] not in (1, 4)
|
||||
or application["app_ppm_conf.ctrl_type"] != 4
|
||||
or not math.isfinite(band) or not .01 <= band <= .3):
|
||||
raise ValueError("Unsupported PPM neutral configuration")
|
||||
return band
|
||||
|
||||
|
||||
def active(level, band):
|
||||
if not math.isfinite(level) or not math.isfinite(band) or not .01 <= band <= .3:
|
||||
raise ValueError("Invalid PPM level or neutral band")
|
||||
return abs(level) > band
|
||||
Reference in New Issue
Block a user