|
rcbench
Servo and ESC test bench: panel, IOmcu and shared C
|
The IOmcu's end of the link: pages, the silence watchdog and the arm latch. More...
#include <link_dev.h>
Data Fields | |
| const link_page_t * | pages |
| uint8_t | page_count |
| void * | ctx |
| uint32_t | last_request_ms |
| bool | heard |
| Whether a request has ever arrived. | |
| bool | silent |
| bool | failsafe |
| bool | arm_latched |
| The arm latch: while set, a write of ARM is refused. | |
| uint32_t | requests |
The IOmcu's end of the link: pages, the silence watchdog and the arm latch.
| bool link_dev_t::arm_latched |
The arm latch: while set, a write of ARM is refused.
Set by link_dev_init(), on the silence edge and by link_dev_latch_arm(); cleared by link_dev_clear_failsafe() and by nothing else. It is not failsafe: that flag says the link went silent, gates the supply and is reported on STATUS, and an IOmcu that has just started has had no silence. What a start and a silence share is that the ARM register the host goes on writing is older than the event, so neither may arm on it.
| bool link_dev_t::failsafe |
latched: only an explicit clear leaves it
| bool link_dev_t::heard |
Whether a request has ever arrived.
Silence before the first one is not silence: this end is awake a few hundred milliseconds before the panel starts polling, and counting that as a fault lights the panel's indicator from power-on, on every bench, before anything has happened. A warning that is always on is one nobody reads.
| bool link_dev_t::silent |
nothing has arrived for LINK_DEV_SILENCE_MS