ACwing FC firmware
STM32WB55: attitude IEKF, altitude Kalman filter, flight core, protocol v2
Loading...
Searching...
No Matches
params.h
Go to the documentation of this file.
1
12#ifndef PARAMS_H
13#define PARAMS_H
14
15#include <stdint.h>
16
18enum {
27 /* firmware extensions (not in HANDOVER_FW.md ยง8 yet): appended, never reordered */
30};
31
32typedef struct {
33 uint16_t id;
34 float def, min, max;
35 uint16_t needs;
37
39
40void params_defaults(void);
41int params_index(uint16_t id);
42float param_get(int idx);
43#define PARAM(i) param_get(i)
44
46uint8_t params_set(uint16_t id, float v, uint8_t *reason);
47
50
52void params_load(const float *values, uint16_t n);
53void params_get_all(float *values);
54void params_mark_saved(void);
55uint8_t params_dirty(int idx);
58uint8_t params_visible(int idx, uint16_t sensors);
59uint16_t params_visible_count(uint16_t sensors);
60int params_visible_pos(int idx, uint16_t sensors);
62#endif /* PARAMS_H */
uint32_t n
Definition calib_mgr.c:35
uint8_t params_set(uint16_t id, float v, uint8_t *reason)
PARAM_SET rules: returns an ACK result (PV2_ACK_*) and sets *reason.
Definition params.c:68
uint16_t params_visible_count(uint16_t sensors)
Definition params.c:119
const param_def_t g_param_def[PARAM_COUNT]
Definition params.c:11
float param_get(int idx)
lock-free read, any thread
Definition params.c:56
uint8_t params_visible(int idx, uint16_t sensors)
listing: parameters whose sensor is missing are omitted
Definition params.c:112
void params_get_all(float *values)
PARAM_COUNT values.
Definition params.c:96
@ P_LOG_MODE
Definition params.h:28
@ P_BATT_CELLS
Definition params.h:28
@ P_RTH_ALT
Definition params.h:24
@ P_BATT_WARN
Definition params.h:22
@ P_GF_MAX_DIST
Definition params.h:23
@ P_FS_GPS_LOST
Definition params.h:21
@ PARAM_COUNT
Definition params.h:29
@ P_TAKEOFF_ALT
Definition params.h:19
@ P_FS_APP_LONG
Definition params.h:21
@ P_BATT_CAPACITY
Definition params.h:28
@ P_MAX_YAW_RATE
Definition params.h:19
@ P_GF_CEILING
Definition params.h:23
@ P_AUTO_DISARM
Definition params.h:19
@ P_LAND_SPEED
Definition params.h:19
@ P_BATT_EMERG
Definition params.h:22
@ P_FS_RADIO
Definition params.h:21
@ P_FS_APP_SHORT
Definition params.h:21
@ P_BATT_CRIT
Definition params.h:22
@ P_MAX_TILT
Definition params.h:19
@ P_MAX_HSPEED
Definition params.h:20
@ P_COMPASS_PRIMARY
Definition params.h:26
@ P_GF_MAX_ALT
Definition params.h:23
@ P_GF_ACTION
Definition params.h:23
@ P_RTH_STICK_CANCEL
Definition params.h:24
@ P_MAX_CLIMB
Definition params.h:19
@ P_ARM_REQUIRE_CHECKS
Definition params.h:25
@ P_BEGINNER
Definition params.h:20
@ P_FS_FLOW_LOST
Definition params.h:21
void params_mark_saved(void)
saved <- RAM
Definition params.c:101
@ PARAM_LOG_ARMED
Definition params.h:49
@ PARAM_LOG_ALWAYS
Definition params.h:49
@ PARAM_LOG_OFF
Definition params.h:49
void params_defaults(void)
RAM <- defaults (dirty until saved)
Definition params.c:45
int params_index(uint16_t id)
-1 if unknown
Definition params.c:50
void params_load(const float *values, uint16_t n)
flash image
Definition params.c:84
uint8_t params_dirty(int idx)
RAM != flash.
Definition params.c:106
int params_visible_pos(int idx, uint16_t sensors)
index in PARAM_LIST, -1 if hidden
Definition params.c:126
uint16_t id
Definition params.h:33
float def
Definition params.h:34
uint16_t needs
CAPS sensor bits required to list it (0 = always)
Definition params.h:35