34#define THROTTLE_CURVE_SWITCH_VAL (MAX_PPRZ*2/THROTTLE_CURVES_NB)
37#ifndef THROTTLE_CURVE_RPM_FB_P
38#define THROTTLE_CURVE_RPM_FB_P 0.0
42#ifndef THROTTLE_CURVE_RPM_FB_I
43#define THROTTLE_CURVE_RPM_FB_I 0.0
47#ifndef THROTTLE_CURVE_RPM_INC_LIMIT
48#define THROTTLE_CURVE_RPM_INC_LIMIT 512
53#ifndef THROTTLE_CURVE_ACT_FEEDBACK_ID
54#define THROTTLE_CURVE_ACT_FEEDBACK_ID ABI_BROADCAST
59#ifndef THROTTLE_CURVE_RPM_ACT
60#error "There needs to be an actuator to listen for RPM feedback, please set THROTTLE_CURVE_RPM_ACT"
102#if PERIODIC_TELEMETRY
143 if (
curve.nb_points == 1) {
159 if (
curve.rpm[0] != 0xFFFF) {
200 }
else if (
curve.rpm[0] == 0xFFFF) {
Main include for ABI (AirBorneInterface).
Event structure to store callbacks in a linked list.
bool autopilot_get_motors_on(void)
get motors status
Core autopilot interface common to all firmwares.
Hardware independent code for commands handling.
PRINT_CONFIG_VAR(ONELOOP_ANDI_FILT_CUTOFF)
struct RadioControl radio_control
Generic interface for radio control modules.
pprz_t values[RADIO_CONTROL_NB_CHANNEL]
static uint8_t mode
mode holds the current sonar mode mode = 0 used at high altitude, uses 16 wave patterns mode = 1 used...
static const struct usb_device_descriptor dev
int8_t register_periodic_telemetry(struct periodic_telemetry *_pt, uint8_t _id, telemetry_cb _cb)
Register a telemetry callback function.
Periodic telemetry system header (includes downlink utility and generated code).
#define DefaultPeriodic
Set default periodic telemetry.
#define THROTTLE_CURVE_SWITCH_VAL
struct throttle_curve_t throttle_curve
#define THROTTLE_CURVE_RPM_FB_P
void throttle_curve_init(void)
Initialize the default throttle curve values.
static void throttle_curve_send_telem(struct transport_tx *trans, struct link_device *dev)
static void act_feedback_cb(uint8_t sender_id, struct act_feedback_t *feedback, uint8_t num_act)
RPM callback for RPM based control throttle curves.
#define THROTTLE_CURVE_ACT_FEEDBACK_ID
void throttle_curve_run(pprz_t cmds[], uint8_t ap_mode)
Run the throttle curve and generate the output throttle and pitch This depends on the FMODE(flight mo...
#define THROTTLE_CURVE_RPM_INC_LIMIT
void nav_throttle_curve_set(uint8_t mode)
Set a specific throttle curve based on the mode given with this function.
#define THROTTLE_CURVE_RPM_FB_I
static abi_event act_feedback_ev
int32_t coll_trim
Collective trim.
float rpm_fb_p
RPM feedback p gain.
uint16_t throttle[THROTTLE_POINTS_NB]
Throttle points in the curve.
uint16_t rpm
Output RPM of the throttle curve.
uint16_t rpm_meas
RPM measured.
int16_t collective[THROTTLE_POINTS_NB]
The collective points in the curve.
uint8_t nb_curves
The number of throttle/pitch curves.
uint8_t nav_mode
Nav Flight mode.
int32_t throttle_trim
RPM feedback i gain.
uint16_t throttle
Output thrust(throttle) of the throttle curve.
struct curve_t curves[THROTTLE_CURVES_NB]
Throttle/pitch curves.
int16_t collective
Output collective of the throttle curve.
bool rpm_measured
Whenever the RPM is measured.
float rpm_err_sum
Summed RPM error.
unsigned short uint16_t
Typedef defining 16 bit unsigned short type.
int int32_t
Typedef defining 32 bit int type.
short int16_t
Typedef defining 16 bit short type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.
signed char int8_t
Typedef defining 8 bit char type.