rcbench
Servo and ESC test bench: panel, IOmcu and shared C
Loading...
Searching...
No Matches
arming_t Struct Reference

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

Field Documentation

◆ arming

bool arming_t::arming

an arm is waiting for the line

◆ disarm_pending

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.

◆ handshake_until_ms

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().

◆ in_run

bool arming_t::in_run

a run is being timed

◆ line_nobody

bool arming_t::line_nobody

no far end in this pass; see arming_line_nobody()

◆ line_trusted

bool arming_t::line_trusted

reported for the arm that is waiting

◆ line_wait_ms

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.

See arming_set_line_wait().

◆ pressed

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.

◆ run_seconds

uint32_t arming_t::run_seconds

held after the run ends

◆ run_start_ms

uint32_t arming_t::run_start_ms

its start; any tick, 0 included; read only while in_run

◆ settle_ms

uint32_t arming_t::settle_ms

how long the line is given

◆ settle_until_ms

uint32_t arming_t::settle_until_ms

the instant the settle ends, ms

◆ stopped

bool arming_t::stopped

the latch

◆ stops

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.

◆ touch_was_dead

bool arming_t::touch_was_dead

so touch dying is counted once, not per pass


The documentation for this struct was generated from the following file: