|
rcbench
Servo and ESC test bench: panel, IOmcu and shared C
|
Data Fields | |
| bool | link_up |
| bool | armed |
| uint8_t | armed_roles |
| uint16_t | faults |
| uint32_t | run_seconds |
| const char * | mode |
| bool | simulated |
| uint16_t | capabilities |
| uint32_t | link_errors |
| uint32_t | link_refused |
| float | mcu_temp_c |
| uint8_t ui_bench_status_t::armed_roles |
UI_ARMED_* bits while armed. One of them names the role on the chip, ARMED MOTOR or ARMED SERVO; both, or none, read ARMED: every output.
| uint16_t ui_bench_status_t::faults |
a link_fault_t bitmap; 0 is quiet
| uint32_t ui_bench_status_t::link_errors |
Link errors since boot: the IOmcu's CRC (cyclic redundancy check) failures and resyncs added together. Zero is a clean bus.
| uint32_t ui_bench_status_t::link_refused |
CAN frames the IOmcu refused to decode since its power-up, modulo 2^32: STATUS registers 8 and 9, protocol 4.21. 0 for an IOmcu older than 4.21, which does not count them, and until the first status read after a link-up.
| float ui_bench_status_t::mcu_temp_c |
The panel's own die temperature in degrees Celsius, or NAN when it is not read. The panel's, not the IOmcu's: the two boards run at different temperatures and this one is the display's.
| const char* ui_bench_status_t::mode |
ui_band_mode(): BENCH or SIM, or NULL
| bool ui_bench_status_t::simulated |
The numbers are modelled, not measured.
Set when the bench numbers come from the panel's own simulator, which runs only while no IOmcu answers. An IOmcu that answers reports what it can see and nothing else, so the flag it sends (LINK_BN_SIMULATED) is never set by this firmware; the field it has no source for is empty instead. The router draws SIMULATION across the whole screen while this is set, and no screen can opt out.