Commissioning Control — the gen command
The gen shell command provides temporary control of the engine and the generation limit for commissioning and bench testing — without an external host and without touching the configuration.
gen is not a separate control path: it builds a real CAN control message (0x560) and broadcasts it on the bus, so both controllers of a pair act on it exactly as on a message from an external host — same latch, same timeout, same states. Anything documented for the control message applies to gen unchanged, and a real host frame simply supersedes it.
Usage
| Command | Result |
|---|---|
gen | Start, 100 % generation limit, until ctrl+c |
gen 0.4 | Start, 40 % generation limit, until ctrl+c |
gen 0 | Start with zero generation — the engine idles unloaded, until ctrl+c |
gen s | Stop request (latched until it times out or the next command) — returns immediately |
A start request is blocking: gen [0..1] repeats the request every 100 ms for as long as the command runs — exactly as an external host does — and returns only on ctrl+c, at which point it requests a stop. A start request cannot outlive the operator's attention: the explicit stop covers a clean exit, and the /can/can_ctrl_tim timeout covers a terminal that dies without one.
Preconditions
genworks through the CAN control input, so CAN must be a selected start source:start_sel = 1or3(see Enabling). With3the GPIO input must also agree — on a bench without the switch wired, use1. The command reports this precondition instead of overriding the configuration.- A fresh start is granted only when the driver is ready (no error, no active protection, motor steady); the command reports the reason when it refuses.
genclears a pending driver-level shell override (run/stop), which would otherwise block the application. Note that the driverstopcommand stops the local controller only — usegen sto stop the whole system.
Nothing here is test-only firmware — gen exercises the production control path. Any CAN tool on the bus can do the same by sending 0x560 frames.