|
rcbench
Servo and ESC test bench: panel, IOmcu and shared C
|
The link modules' services, one page of the IOmcu each: the current monitors (SENSE and SERVO_SENSE), the phase tap (TONE), the programmer for KST and Chaservo servos (KST) and the programming ports (PROG). Each runs from the poll (panel_poll.c), on the control task. More...
#include <stdatomic.h>#include <stdio.h>#include <string.h>#include "freertos/FreeRTOS.h"#include "freertos/queue.h"#include "arming.h"#include "kst_link.h"#include "kst_prog.h"#include "link_host.h"#include "link_pages.h"#include "outputs.h"#include "panel.h"#include "prog_link.h"#include "sense_link.h"#include "sense_page.h"#include "servo_link.h"#include "servo_screen.h"#include "servo_source.h"#include "servo_test_io.h"#include "storage.h"#include "tone_link.h"#include "ui_text.h"Functions | |
| void | kst_port_look (void) |
| static void | prog_hold_look (void) |
| static void | alert_drop (uint32_t *setup_gen, uint32_t *alert_gen) |
| void | sense_link_alerts (void) |
| static void | enc_queue (void) |
| static void | servo_source_alerts (void) |
| void | hitec_rx_service (void) |
| void | sense_link_service (bool idle, bench_state_t *bench) |
| void | tone_link_alerts (void) |
| void | tone_link_service (void) |
| void | kst_commands (void) |
| void | kst_link_service (void) |
| static void | prog_page_read (void) |
| void | prog_link_service (void) |
| void | kst_publish (kst_prog_feed_t *f) |
Variables | |
| sense_link_t | s_sense_link |
| servo_source_t | s_servo_source |
| tone_link_t | s_tone_link |
| kst_link_t | s_kst_link |
| prog_link_t | s_prog_link |
| atomic_uint | s_prog_want_target |
| atomic_bool | s_prog_want_pwm |
| atomic_uint | s_prog_pin = PROG_LINK_NO_PIN |
| atomic_uint | s_prog_ports = PROG_PORTS_NONE |
| atomic_uint | s_drive |
| static uint32_t | s_kst_answer_id |
| static kst_link_start_t | s_kst_answer |
| static uint32_t | s_kst_outcomes |
| static kst_link_outcome_t | s_kst_outcome |
| static uint32_t | s_kst_stops |
| bool | s_prog_taken |
| Whether a servo programmer, KST or Hitec, has a port or an operation under way: the bench takes no arm then (kst_prog.h, hitec_prog.h), and the supply's set points are the port's. | |
| kst_prog_gate_t | s_kst_gate |
| static const char *const | k_sense_part [2] = { "INA228", "INA3221" } |
| static uint32_t | s_sense_alert_gen |
| static uint32_t | s_sense_alert_ev |
| static uint32_t | s_sense_setup_gen |
| static uint32_t | s_sense_setup_ev |
| static uint32_t | s_source_alert_gen |
| static uint32_t | s_source_alert_ev |
| atomic_uint | s_sense_unheld |
| atomic_uint | s_tone_unheld |
| hitec_rx_link_t | s_hitec_rx_link |
| atomic_uint | s_hitec_rx_want |
| atomic_uint | s_hitec_rx_mark |
| static uint32_t | s_tone_alert_gen |
| static uint16_t | s_tone_alert_ev |
| static uint32_t | s_tone_setup_gen |
| static uint16_t | s_tone_setup_ev |
The link modules' services, one page of the IOmcu each: the current monitors (SENSE and SERVO_SENSE), the phase tap (TONE), the programmer for KST and Chaservo servos (KST) and the programming ports (PROG). Each runs from the poll (panel_poll.c), on the control task.
SPDX-License-Identifier: MIT
| atomic_uint s_drive |
| bool s_prog_taken |
Whether a servo programmer, KST or Hitec, has a port or an operation under way: the bench takes no arm then (kst_prog.h, hitec_prog.h), and the supply's set points are the port's.
Whether a servo programmer, KST or Hitec, has a port or an operation under way: the bench takes no arm and no supply change then. Control task only; kst_port_look().
Control task only. Read once a pass by kst_port_look(), before the arms of the pass are served: no command of a programmer is taken between the two. A HITEC port another writer holds counts: the bench console's, or one held over a panel restart, until RELEASE PORT closes it.
Whether a servo programmer, KST or Hitec, has a port or an operation under way: the bench takes no arm then (kst_prog.h, hitec_prog.h), and the supply's set points are the port's.