#include #include #include #include #include #include #include #if defined(HAL_PERIPH_NEOPIXEL_COUNT) || defined(HAL_PERIPH_ENABLE_NCP5623_LED) #define AP_PERIPH_HAVE_LED #endif #include "Parameters.h" #include "ch.h" class AP_Periph_FW { public: void init(); void update(); Parameters g; void can_start(); void can_update(); void can_mag_update(); void can_gps_update(); void can_baro_update(); void can_airspeed_update(); void can_rangefinder_update(); void load_parameters(); AP_SerialManager serial_manager; #ifdef HAL_PERIPH_ENABLE_GPS AP_GPS gps; #endif #ifdef HAL_PERIPH_ENABLE_MAG Compass compass; #endif #ifdef HAL_PERIPH_ENABLE_BARO AP_Baro baro; #endif #ifdef HAL_PERIPH_ENABLE_ADSB void adsb_init(); void adsb_update(); void can_send_ADSB(struct __mavlink_adsb_vehicle_t &msg); struct { mavlink_message_t msg; mavlink_status_t status; } adsb; #endif #ifdef HAL_PERIPH_ENABLE_AIRSPEED AP_Airspeed airspeed; #endif #ifdef HAL_PERIPH_ENABLE_RANGEFINDER RangeFinder rangefinder; #endif // setup the var_info table AP_Param param_loader{var_info}; static const AP_Param::Info var_info[]; uint32_t last_mag_update_ms; uint32_t last_gps_update_ms; uint32_t last_baro_update_ms; uint32_t last_airspeed_update_ms; }; extern AP_Periph_FW periph; extern "C" { void can_printf(const char *fmt, ...); }