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

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

Detailed Description

The IOmcu's end of the link: pages, the silence watchdog and the arm latch.

Field Documentation

◆ arm_latched

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.

◆ failsafe

bool link_dev_t::failsafe

latched: only an explicit clear leaves it

◆ heard

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.

◆ silent

bool link_dev_t::silent

nothing has arrived for LINK_DEV_SILENCE_MS


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