rcbench
Servo and ESC test bench: panel, IOmcu and shared C
Loading...
Searching...
No Matches
settings_sensors.h
Go to the documentation of this file.
1
44
45#pragma once
46
47#include <stdbool.h>
48#include <stdint.h>
49
50#include "link_pages.h"
51#include "settings.h"
52
53#ifdef __cplusplus
54extern "C" {
55#endif
56
61#define SET_INA_FIT(a) ((setting_id_t)(SET_INA_FIT_0 + (int)(a)))
62#define SET_INA_W(c) ((setting_id_t)(SET_INA_CH_0 + (int)(c) * SET_INA_CH_ROWS))
63#define SET_INA_SH(c) ((setting_id_t)(SET_INA_CH_0 + (int)(c) * SET_INA_CH_ROWS + 1))
65#define SET_INA_LIM(c) ((setting_id_t)(SET_INA_CH_0 + (int)(c) * SET_INA_CH_ROWS + 2))
66
68enum {
69 SENS_W_NONE = 0,
72 SENS_W_SUPPLY = 13,
73 SENS_W_COUNT = 14,
74};
75
76_Static_assert(SET_INA_PARTS == (int)LINK_SM_PARTS
77 && SET_INA_CHANNELS == (int)LINK_SM_CHANNELS,
78 "SENSORS has the parts and channels SENSE_MAP has");
79
83
86
89
92uint16_t settings_sensors_watch_code(int option);
93
99int settings_sensors_watch_option(uint16_t code);
100
107uint16_t settings_sensors_limit_ma(int c);
108
114void settings_sensors_unset(float *values);
115
121int settings_sensors_migrate(float *values);
122
124typedef struct {
127 uint8_t parts;
130 uint8_t dark;
131 uint8_t fast;
135 uint8_t mirror;
142 bool one_on;
143 uint8_t one_addr;
144 uint16_t one_dmohm;
145 uint8_t one_ch;
147
155
158uint8_t settings_sensors_fast(void);
159
161uint8_t settings_sensors_fitted(void);
162
168uint16_t settings_sensors_meter_dmohm(void);
169
175uint16_t settings_sensors_dmohm(int c);
176
177#ifdef __cplusplus
178}
179#endif
Device settings: a typed schema, a value per entry, and a persistence seam.
setting_id_t
Every setting's id, in schema order.
Definition settings.h:67
#define SET_INA_PARTS
The INA3221 parts SETUP > SENSORS sets up: four, at 0x40 to 0x43, three channels each,...
Definition settings.h:62
#define SET_INA_CHANNELS
Definition settings.h:63
uint8_t settings_sensors_fitted(void)
Definition settings_sensors.c:213
int settings_sensors_migrate(float *values)
Definition settings_sensors.c:148
@ SENS_W_OUT_1
Definition settings_sensors.h:70
@ SENS_W_PORT_1
Definition settings_sensors.h:71
void settings_sensors_map(settings_sensors_map_t *m)
Definition settings_sensors.c:245
uint16_t settings_sensors_watch_code(int option)
Definition settings_sensors.c:119
const setting_def_t * settings_sensors_def(setting_id_t id)
Definition settings_sensors.c:100
void settings_sensors_unset(float *values)
Definition settings_sensors.c:131
bool settings_sensors_row(setting_id_t id)
Definition settings_sensors.c:95
uint8_t settings_sensors_fast(void)
Definition settings_sensors.c:206
int settings_sensors_watch_option(uint16_t code)
The WATCHES option of a SENSE_MAP WATCH value.
Definition settings_sensors.c:178
int settings_sensors_part(setting_id_t id)
Definition settings_sensors.c:108
uint16_t settings_sensors_meter_dmohm(void)
The shunt of the channel the servo rail's meter reads.
Definition settings_sensors.c:224
uint16_t settings_sensors_limit_ma(int c)
Channel c's LIMIT as SENSE_LIMIT's LIMIT_MA takes it.
Definition settings_sensors.c:188
uint16_t settings_sensors_dmohm(int c)
A channel's shunt as the map carries it.
Definition settings_sensors.c:198
A setting's row of the schema: its key, unit, category, type, range, step, default and options....
Definition settings.h:206
Definition settings_sensors.h:124
bool one_on
SENSE registers 8 to 10 for an IOmcu older than 4.25: the mirror part, its CH1 shunt or its first one...
Definition settings_sensors.h:142
uint16_t regs[LINK_SM_KEPT]
Definition settings_sensors.h:126
uint8_t mirror
Definition settings_sensors.h:135
uint8_t dark
Definition settings_sensors.h:130
uint8_t parts
Definition settings_sensors.h:127
uint8_t fast
Definition settings_sensors.h:131