rcbench
Servo and ESC test bench: panel, IOmcu and shared C
Loading...
Searching...
No Matches
outputs_screen.h
Go to the documentation of this file.
1
33
34#pragma once
35
36#include <stdbool.h>
37#include <stddef.h>
38
39#include "bind_link.h"
40#include "out_bind.h"
41#include "ui_screen.h"
42
43#ifdef __cplusplus
44extern "C" {
45#endif
46
47const ui_screen_t *outputs_screen(void);
48
51
54
62
75
78
82
93typedef void (*outputs_apply_fn)(const outbind_t *b);
94void outputs_screen_set_apply(outputs_apply_fn fn);
95
103
104void outputs_screen_set_result(outputs_result_t r);
105
116
121outputs_cell_t outputs_screen_cell(uint8_t index, char *label, size_t cap);
122
124#define OUTPUTS_NO_PIN 0xFFu
125
133void outputs_screen_set_prog_pin(uint8_t gpio);
134
137#define OUTPUTS_PORTS_UNKNOWN 0xFFu
138
150void outputs_screen_set_prog_ports(uint8_t count, const uint8_t *pins);
151
153uint8_t outputs_screen_port_entries(void);
154
156uint8_t outputs_screen_port_pin(uint8_t port);
157
164void outputs_screen_select_port(uint8_t port);
165
168
177void outputs_screen_open_on(uint8_t proto);
178void outputs_screen_open_on_port(uint8_t port);
179
191bool outputs_screen_port_reason(char *buf, size_t cap);
192
199void outputs_screen_set_port_watch(uint8_t port, const char *label);
200
207bool outputs_screen_reason(char *buf, size_t cap);
208
216bool outputs_reason_of(const outbind_t *b, char *buf, size_t cap);
217
234bool outputs_clash_label(const outbind_t *b, uint8_t index,
235 const uint8_t *ports, uint8_t count, char *buf,
236 size_t cap);
237
256bool outputs_clash_reason(const outbind_t *b, int index,
257 const uint8_t *ports, uint8_t count, char *buf,
258 size_t cap);
259
284typedef enum {
285 OUTPUTS_IFACE_NONE = 0,
289 OUTPUTS_IFACE_COUNT
291
302 int pin_a, int pin_b);
303
306uint64_t outputs_iface_pins(outputs_iface_t which);
307
311
314const char *outputs_iface_name(outputs_iface_t which);
315
336int outputs_wrap(gfx_canvas_t *c, gfx_rect_t box, int pitch, const char *text,
337 int max_lines, const gfx_font_t *font, gfx_color_t ink,
338 bool centre);
339
349void outputs_screen_select(uint8_t proto);
350
351#ifdef __cplusplus
352}
353#endif
Binding a protocol to pins: what the operator chooses, and the OUTPUTS page that comes out of it.
outputs_cell_t
Definition outputs_screen.h:107
@ OUTPUTS_CELL_HELD
Definition outputs_screen.h:111
@ OUTPUTS_CELL_RESERVED
Definition outputs_screen.h:114
@ OUTPUTS_CELL_FREE
Definition outputs_screen.h:109
@ OUTPUTS_CELL_TICKED
Definition outputs_screen.h:110
@ OUTPUTS_CELL_NONE
Definition outputs_screen.h:108
void outputs_screen_set_reading(const bind_reading_t *r)
Definition outputs_screen.c:272
bool outputs_clash_reason(const outbind_t *b, int index, const uint8_t *ports, uint8_t count, char *buf, size_t cap)
The line under the protocol for such a pin, catalogue entry index: "GPIO 28: SHARES PWM SLICE WITH PR...
Definition outputs_port.c:338
void outputs_screen_set_iface_held(outputs_iface_t which, bool known, int pin_a, int pin_b)
Definition outputs_port.c:117
bind_read_t outputs_screen_read_state(void)
Definition outputs_screen.c:313
outputs_result_t
Definition outputs_screen.h:97
@ OUTPUTS_OK
Definition outputs_screen.h:99
@ OUTPUTS_IDLE
Definition outputs_screen.h:98
@ OUTPUTS_REFUSED
Definition outputs_screen.h:101
@ OUTPUTS_NO_LINK
Definition outputs_screen.h:100
bool outputs_screen_editable(void)
Definition outputs_screen.c:315
outputs_iface_t
Definition outputs_screen.h:284
@ OUTPUTS_IFACE_PDMINI
Definition outputs_screen.h:287
@ OUTPUTS_IFACE_TAP
Definition outputs_screen.h:288
@ OUTPUTS_IFACE_SENSE
Definition outputs_screen.h:286
uint8_t outputs_screen_port_pin(uint8_t port)
Definition outputs_port.c:67
bool outputs_screen_port_reason(char *buf, size_t cap)
Definition outputs_port_entry.c:270
void outputs_screen_invalidate(void)
Definition outputs_screen.c:197
outputs_iface_t outputs_iface_at(uint8_t gpio)
Definition outputs_port.c:211
void outputs_screen_set_prog_pin(uint8_t gpio)
Definition outputs_port.c:50
void outputs_screen_open_on(uint8_t proto)
Definition outputs_port.c:263
uint64_t outputs_iface_pins(outputs_iface_t which)
Definition outputs_port.c:157
const char * outputs_iface_name(outputs_iface_t which)
Definition outputs_port.c:225
outputs_cell_t outputs_screen_cell(uint8_t index, char *label, size_t cap)
Definition outputs_screen.c:780
bool outputs_screen_reason(char *buf, size_t cap)
Definition outputs_screen.c:717
const outbind_t * outputs_screen_binding(void)
Definition outputs_screen.c:202
uint8_t outputs_screen_port_entries(void)
Definition outputs_port.c:58
void outputs_screen_set_binding(const outbind_t *b)
Definition outputs_screen.c:213
void outputs_screen_set_prog_ports(uint8_t count, const uint8_t *pins)
Definition outputs_port.c:75
void(*) outputs_apply_fn(const outbind_t *b)
Called with the binding to write after a pin is ticked or unticked, and with a binding that holds no ...
Definition outputs_screen.h:93
void outputs_screen_select(uint8_t proto)
Definition outputs_screen.c:329
int outputs_screen_port_shown(void)
Definition outputs_port_entry.c:201
int outputs_wrap(gfx_canvas_t *c, gfx_rect_t box, int pitch, const char *text, int max_lines, const gfx_font_t *font, gfx_color_t ink, bool centre)
Draw text in lines of font no wider than box.
Definition outputs_screen.c:622
bool outputs_reason_of(const outbind_t *b, char *buf, size_t cap)
Definition outputs_screen.c:739
void outputs_screen_set_port_watch(uint8_t port, const char *label)
Definition outputs_port_entry.c:102
bool outputs_clash_label(const outbind_t *b, uint8_t index, const uint8_t *ports, uint8_t count, char *buf, size_t cap)
The line under a pin's name for a pin the IOmcu refuses the PWM generator (outbind_pwm_clash_ports() ...
Definition outputs_port.c:316
void outputs_screen_select_port(uint8_t port)
Definition outputs_port_entry.c:192
One reading of the two output pages, and the binding it gives.
Definition bind_link.h:105
Definition gfx.h:129
Definition gfx.h:250
Definition gfx.h:81
The selection: which board, the protocol being edited, and each protocol's pins.
Definition out_bind.h:423
Definition ui_screen.h:68
Screen router.