|
rcbench
Servo and ESC test bench: panel, IOmcu and shared C
|
Data Fields | |
| bool | armed |
| bool | stopped |
| uint32_t | stops |
| How many times the bench has been stopped, by any means: a STOP, the far end, or touch that stopped answering. | |
| uint32_t | pressed |
| Of those, the ones an operator pressed: counted in the same call as the stop, so a reader that sees a stop sees its press with it. | |
| bool | touch_was_dead |
| bool | disarm_pending |
| A disarm owed to something the policy saw between steps. | |
| bool | arming |
| uint8_t | roles |
| The roles of the arm in force or waiting, the caller's bits; see arming_request_arm_roles(). | |
| bool | switching |
| A request for other roles found the bench armed: the next step disarms before the arm for them. | |
| uint32_t | settle_ms |
| uint32_t | settle_until_ms |
| uint32_t | line_wait_ms |
| How long past the settle an arm waits for the far end to report the line trusted; 0 when there is no far end to ask and the settle alone decides. | |
| bool | line_trusted |
| bool | line_nobody |
| uint32_t | handshake_until_ms |
| The deadline of the arm arming_step() last handed out, kept for the handshake that writes it: settle plus line wait, the instant the wait for the line ends at. | |
| bool | handshake_bounded |
| uint32_t | last_touch_ms |
| bool | in_run |
| uint32_t | run_start_ms |
| uint32_t | run_seconds |
| bool arming_t::arming |
an arm is waiting for the line
| bool arming_t::disarm_pending |
A disarm owed to something the policy saw between steps.
Touch can die and answer again inside one blocking link exchange, and the bank must not survive that: by the time the policy next runs the controller is healthy, so nothing in the state would say the outage happened, and the heartbeat need not have been withheld for long enough for the far end to fail safe either.
| uint32_t arming_t::handshake_until_ms |
The deadline of the arm arming_step() last handed out, kept for the handshake that writes it: settle plus line wait, the instant the wait for the line ends at.
handshake_bounded is false for an arm that asked no far end. See arming_handshake_open().
| bool arming_t::in_run |
a run is being timed
| bool arming_t::line_nobody |
no far end in this pass; see arming_line_nobody()
| bool arming_t::line_trusted |
reported for the arm that is waiting
| uint32_t arming_t::line_wait_ms |
How long past the settle an arm waits for the far end to report the line trusted; 0 when there is no far end to ask and the settle alone decides.
| uint32_t arming_t::pressed |
Of those, the ones an operator pressed: counted in the same call as the stop, so a reader that sees a stop sees its press with it.
What is left – touch dead or lost, the far end – is the bench's own.
| uint32_t arming_t::run_seconds |
held after the run ends
| uint32_t arming_t::run_start_ms |
its start; any tick, 0 included; read only while in_run
| uint32_t arming_t::settle_ms |
how long the line is given
| uint32_t arming_t::settle_until_ms |
the instant the settle ends, ms
| bool arming_t::stopped |
the latch
| uint32_t arming_t::stops |
How many times the bench has been stopped, by any means: a STOP, the far end, or touch that stopped answering.
The latch is a level and says only that a stop is in force; a screen needs the event. A second STOP during a hold that began after the first one leaves the latch exactly as it was, and the hold would otherwise complete and clear it. Touch dying is not a latch at all, and it invalidates a gesture just as much.
| bool arming_t::touch_was_dead |
so touch dying is counted once, not per pass