Tier 3: Bi-directional & service functions (actuator tests, resets, module config) #2
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
FORScan/Autel-class bi-directional control: actuator/output tests (injector buzz, cylinder contribution/balance, KOEO/KOER self-tests, command fans/relays), and service functions (oil reset, TPMS relearn, throttle/SAS relearn, DPF regen, EPB/brake service, battery registration). Optionally module configuration/As-Built.
Approach
Model the commands as data in the vehicle profile (a new
actions/routinessection) the same way PIDs are — UDS Mode 2F (input/output control) and Mode 31 (routine control). Community-contributable per vehicle; sandbox any write. Start read-only (self-tests), add writes behind strong confirmations. Extend PROFILE_SPEC.md.Notes
This is the real "match FORScan" milestone and the biggest lift — needs per-vehicle reverse engineering and carries risk (can mis-actuate/brick modules). P2, feature.
Framework landed in
d435384(first increment):obdcore/actions.py— profile-defined UDS action sequences: session (Mode 10) → security (Mode 27 seed→key) → command steps (2F/31/11/3E/…), with response checks. Runs ONLY profile-defined hex; per-vehicle seed→key algorithms deliberately NOT bundled (unknown algorithm = blocked, fails safe).actions[]block (loaded/saved/validated);ElmLink/MockLink.read_raw.Remaining (keep open):