mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-22 00:28:30 -04:00
ArduCopter: use designated initializers for tasks structs
Makes code less prone to break build and semantics (e.g., when a new field is added).
This commit is contained in:
parent
2e6074c108
commit
79b8b15053
@ -75,7 +75,10 @@
|
||||
|
||||
#include "Copter.h"
|
||||
|
||||
#define SCHED_TASK(func) FUNCTOR_BIND(&copter, &Copter::func, void)
|
||||
#define SCHED_TASK(func, _interval_ticks, _max_time_micros) {\
|
||||
.function = FUNCTOR_BIND(&copter, &Copter::func, void),\
|
||||
.interval_ticks = _interval_ticks,\
|
||||
.max_time_micros = _max_time_micros}
|
||||
|
||||
/*
|
||||
scheduler table for fast CPUs - all regular tasks apart from the fast_loop()
|
||||
@ -94,64 +97,64 @@
|
||||
|
||||
*/
|
||||
const AP_Scheduler::Task Copter::scheduler_tasks[] PROGMEM = {
|
||||
{ SCHED_TASK(rc_loop), 4, 130 },
|
||||
{ SCHED_TASK(throttle_loop), 8, 75 },
|
||||
{ SCHED_TASK(update_GPS), 8, 200 },
|
||||
SCHED_TASK(rc_loop, 4, 130),
|
||||
SCHED_TASK(throttle_loop, 8, 75),
|
||||
SCHED_TASK(update_GPS, 8, 200),
|
||||
#if OPTFLOW == ENABLED
|
||||
{ SCHED_TASK(update_optical_flow), 2, 160 },
|
||||
SCHED_TASK(update_optical_flow, 2, 160),
|
||||
#endif
|
||||
{ SCHED_TASK(update_batt_compass), 40, 120 },
|
||||
{ SCHED_TASK(read_aux_switches), 40, 50 },
|
||||
{ SCHED_TASK(arm_motors_check), 40, 50 },
|
||||
{ SCHED_TASK(auto_trim), 40, 75 },
|
||||
{ SCHED_TASK(update_altitude), 40, 140 },
|
||||
{ SCHED_TASK(run_nav_updates), 8, 100 },
|
||||
{ SCHED_TASK(update_thr_average), 4, 90 },
|
||||
{ SCHED_TASK(three_hz_loop), 133, 75 },
|
||||
{ SCHED_TASK(compass_accumulate), 8, 100 },
|
||||
{ SCHED_TASK(barometer_accumulate), 8, 90 },
|
||||
SCHED_TASK(update_batt_compass, 40, 120),
|
||||
SCHED_TASK(read_aux_switches, 40, 50),
|
||||
SCHED_TASK(arm_motors_check, 40, 50),
|
||||
SCHED_TASK(auto_trim, 40, 75),
|
||||
SCHED_TASK(update_altitude, 40, 140),
|
||||
SCHED_TASK(run_nav_updates, 8, 100),
|
||||
SCHED_TASK(update_thr_average, 4, 90),
|
||||
SCHED_TASK(three_hz_loop, 133, 75),
|
||||
SCHED_TASK(compass_accumulate, 8, 100),
|
||||
SCHED_TASK(barometer_accumulate, 8, 90),
|
||||
#if PRECISION_LANDING == ENABLED
|
||||
{ SCHED_TASK(update_precland), 8, 50 },
|
||||
SCHED_TASK(update_precland, 8, 50),
|
||||
#endif
|
||||
#if FRAME_CONFIG == HELI_FRAME
|
||||
{ SCHED_TASK(check_dynamic_flight), 8, 75 },
|
||||
SCHED_TASK(check_dynamic_flight, 8, 75),
|
||||
#endif
|
||||
{ SCHED_TASK(update_notify), 8, 90 },
|
||||
{ SCHED_TASK(one_hz_loop), 400, 100 },
|
||||
{ SCHED_TASK(ekf_check), 40, 75 },
|
||||
{ SCHED_TASK(landinggear_update), 40, 75 },
|
||||
{ SCHED_TASK(lost_vehicle_check), 40, 50 },
|
||||
{ SCHED_TASK(gcs_check_input), 1, 180 },
|
||||
{ SCHED_TASK(gcs_send_heartbeat), 400, 110 },
|
||||
{ SCHED_TASK(gcs_send_deferred), 8, 550 },
|
||||
{ SCHED_TASK(gcs_data_stream_send), 8, 550 },
|
||||
{ SCHED_TASK(update_mount), 8, 75 },
|
||||
{ SCHED_TASK(ten_hz_logging_loop), 40, 350 },
|
||||
{ SCHED_TASK(fifty_hz_logging_loop), 8, 110 },
|
||||
{ SCHED_TASK(full_rate_logging_loop),1, 100 },
|
||||
{ SCHED_TASK(perf_update), 4000, 75 },
|
||||
{ SCHED_TASK(read_receiver_rssi), 40, 75 },
|
||||
{ SCHED_TASK(rpm_update), 40, 200 },
|
||||
SCHED_TASK(update_notify, 8, 90),
|
||||
SCHED_TASK(one_hz_loop, 400, 100),
|
||||
SCHED_TASK(ekf_check, 40, 75),
|
||||
SCHED_TASK(landinggear_update, 40, 75),
|
||||
SCHED_TASK(lost_vehicle_check, 40, 50),
|
||||
SCHED_TASK(gcs_check_input, 1, 180),
|
||||
SCHED_TASK(gcs_send_heartbeat, 400, 110),
|
||||
SCHED_TASK(gcs_send_deferred, 8, 550),
|
||||
SCHED_TASK(gcs_data_stream_send, 8, 550),
|
||||
SCHED_TASK(update_mount, 8, 75),
|
||||
SCHED_TASK(ten_hz_logging_loop, 40, 350),
|
||||
SCHED_TASK(fifty_hz_logging_loop, 8, 110),
|
||||
SCHED_TASK(full_rate_logging_loop, 1, 100),
|
||||
SCHED_TASK(perf_update, 4000, 75),
|
||||
SCHED_TASK(read_receiver_rssi, 40, 75),
|
||||
SCHED_TASK(rpm_update, 40, 200),
|
||||
#if FRSKY_TELEM_ENABLED == ENABLED
|
||||
{ SCHED_TASK(frsky_telemetry_send), 80, 75 },
|
||||
SCHED_TASK(frsky_telemetry_send, 80, 75),
|
||||
#endif
|
||||
#if EPM_ENABLED == ENABLED
|
||||
{ SCHED_TASK(epm_update), 40, 75 },
|
||||
SCHED_TASK(epm_update, 40, 75),
|
||||
#endif
|
||||
#ifdef USERHOOK_FASTLOOP
|
||||
{ SCHED_TASK(userhook_FastLoop), 4, 75 },
|
||||
SCHED_TASK(userhook_FastLoop, 4, 75),
|
||||
#endif
|
||||
#ifdef USERHOOK_50HZLOOP
|
||||
{ SCHED_TASK(userhook_50Hz), 8, 75 },
|
||||
SCHED_TASK(userhook_50Hz, 8, 75),
|
||||
#endif
|
||||
#ifdef USERHOOK_MEDIUMLOOP
|
||||
{ SCHED_TASK(userhook_MediumLoop), 40, 75 },
|
||||
SCHED_TASK(userhook_MediumLoop, 40, 75),
|
||||
#endif
|
||||
#ifdef USERHOOK_SLOWLOOP
|
||||
{ SCHED_TASK(userhook_SlowLoop), 120, 75 },
|
||||
SCHED_TASK(userhook_SlowLoop, 120, 75),
|
||||
#endif
|
||||
#ifdef USERHOOK_SUPERSLOWLOOP
|
||||
{ SCHED_TASK(userhook_SuperSlowLoop),400, 75 },
|
||||
SCHED_TASK(userhook_SuperSlowLoop, 400, 75),
|
||||
#endif
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user