32 #ifndef ROSFLIGHT_FIRMWARE_COMM_LINK_H 33 #define ROSFLIGHT_FIRMWARE_COMM_LINK_H 62 COMMAND_SET_PARAM_DEFAULTS,
63 COMMAND_ACCEL_CALIBRATION,
64 COMMAND_GYRO_CALIBRATION,
65 COMMAND_BARO_CALIBRATION,
66 COMMAND_AIRSPEED_CALIBRATION,
67 COMMAND_RC_CALIBRATION,
69 COMMAND_REBOOT_TO_BOOTLOADER,
78 ROLLRATE_PITCHRATE_YAWRATE_THROTTLE,
79 ROLL_PITCH_YAWRATE_THROTTLE
95 virtual void init(uint32_t baud_rate, uint32_t dev) = 0;
101 uint64_t timestamp_us,
107 virtual void send_heartbeat(uint8_t system_id,
bool fixed_wing) = 0;
108 virtual void send_imu(uint8_t system_id,
109 uint64_t timestamp_us,
115 virtual void send_named_value_int(uint8_t system_id, uint32_t timestamp_ms,
const char *
const name, int32_t value) = 0;
117 virtual void send_output_raw(uint8_t system_id, uint32_t timestamp_ms,
const float raw_outputs[8]) = 0;
120 const char *
const name,
122 uint16_t param_count) = 0;
125 const char *
const name,
127 uint16_t param_count) = 0;
128 virtual void send_rc_raw(uint8_t system_id, uint32_t timestamp_ms,
const uint16_t
channels[8]) = 0;
129 virtual void send_sonar(uint8_t system_id, uint8_t type,
float range,
float max_range,
130 float min_range) = 0;
137 uint8_t control_mode,
139 int16_t loop_time_us) = 0;
140 virtual void send_timesync(uint8_t system_id, int64_t tc1, int64_t ts1) = 0;
141 virtual void send_version(uint8_t system_id,
const char *
const version) = 0;
142 virtual void send_gnss(uint8_t system_id, uint32_t time_of_week, uint8_t fix_type, uint64_t time, uint64_t nanos,
144 int32_t lon, int32_t height, int32_t vel_n, int32_t vel_e, int32_t vel_d, uint32_t h_acc, uint32_t v_acc,
145 int32_t ecef_x, int32_t ecef_y, int32_t ecef_z, uint32_t p_acc, int32_t ecef_v_x, int32_t ecef_v_y,
146 int32_t ecef_v_z, uint32_t s_acc, uint64_t rosflight_timestamp) = 0;
147 virtual void send_gnss_raw(uint8_t system_id, uint32_t time_of_week, uint16_t year, uint8_t month, uint8_t day,
148 uint8_t hour, uint8_t min, uint8_t sec, uint8_t valid, uint32_t t_acc,
149 int32_t nano, uint8_t fix_type, uint8_t num_sat,
150 int32_t lon, int32_t lat, int32_t height, int32_t height_msl,
151 uint32_t h_acc, uint32_t v_acc, int32_t vel_n, int32_t vel_e,
152 int32_t vel_d, int32_t g_speed, int32_t head_mot, uint32_t s_acc,
153 uint32_t head_acc, uint16_t p_dop, uint64_t rosflight_timestamp) = 0;
165 uint16_t )> callback)
223 #endif // ROSFLIGHT_FIRMWARE_COMM_LINK_H
virtual void send_diff_pressure(uint8_t system_id, float velocity, float pressure, float temperature)=0
virtual void send_attitude_quaternion(uint8_t system_id, uint64_t timestamp_us, const turbomath::Quaternion &attitude, const turbomath::Vector &angular_velocity)=0
virtual void send_param_value_int(uint8_t system_id, uint16_t index, const char *const name, int32_t value, uint16_t param_count)=0
static volatile int16_t gyro[3]
virtual void send_sonar(uint8_t system_id, uint8_t type, float range, float max_range, float min_range)=0
std::function< void(uint8_t, const char *const, float)> param_set_float_callback_
void register_param_request_read_callback(std::function< void(uint8_t, const char *const ,uint16_t)> callback)
virtual void send_baro(uint8_t system_id, float altitude, float pressure, float temperature)=0
void register_param_set_int_callback(std::function< void(uint8_t, const char *const ,int32_t)> callback)
std::function< void(uint8_t, const char *const, uint16_t)> param_request_read_callback_
virtual void send_status(uint8_t system_id, bool armed, bool failsafe, bool rc_override, bool offboard, uint8_t error_code, uint8_t control_mode, int16_t num_errors, int16_t loop_time_us)=0
virtual void send_log_message(uint8_t system_id, LogSeverity severity, const char *text)=0
virtual void init(uint32_t baud_rate, uint32_t dev)=0
virtual void send_param_value_float(uint8_t system_id, uint16_t index, const char *const name, float value, uint16_t param_count)=0
std::function< void(uint8_t)> param_request_list_callback_
virtual void send_gnss(uint8_t system_id, uint32_t time_of_week, uint8_t fix_type, uint64_t time, uint64_t nanos, int32_t lat, int32_t lon, int32_t height, int32_t vel_n, int32_t vel_e, int32_t vel_d, uint32_t h_acc, uint32_t v_acc, int32_t ecef_x, int32_t ecef_y, int32_t ecef_z, uint32_t p_acc, int32_t ecef_v_x, int32_t ecef_v_y, int32_t ecef_v_z, uint32_t s_acc, uint64_t rosflight_timestamp)=0
virtual void send_error_data(uint8_t system_id, const BackupData &error_data)=0
void register_offboard_control_callback(std::function< void(const OffboardControl &)> callback)
virtual void send_mag(uint8_t system_id, const turbomath::Vector &mag)=0
virtual void send_named_value_float(uint8_t system_id, uint32_t timestamp_ms, const char *const name, float value)=0
std::function< void(const turbomath::Quaternion)> attitude_correction_callback_
virtual void send_gnss_raw(uint8_t system_id, uint32_t time_of_week, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t min, uint8_t sec, uint8_t valid, uint32_t t_acc, int32_t nano, uint8_t fix_type, uint8_t num_sat, int32_t lon, int32_t lat, int32_t height, int32_t height_msl, uint32_t h_acc, uint32_t v_acc, int32_t vel_n, int32_t vel_e, int32_t vel_d, int32_t g_speed, int32_t head_mot, uint32_t s_acc, uint32_t head_acc, uint16_t p_dop, uint64_t rosflight_timestamp)=0
virtual void send_version(uint8_t system_id, const char *const version)=0
static volatile int16_t accel[3]
virtual void send_named_value_int(uint8_t system_id, uint32_t timestamp_ms, const char *const name, int32_t value)=0
virtual void send_command_ack(uint8_t system_id, Command command, bool success)=0
static const channelConfig_t channels[CC_CHANNELS_PER_TIMER]
void register_timesync_callback(std::function< void(int64_t, int64_t)> callback)
void register_param_set_float_callback(std::function< void(uint8_t, const char *const ,float)> callback)
std::function< void(uint8_t, const char *const, int32_t)> param_set_int_callback_
std::function< void(int64_t, int64_t)> timesync_callback_
virtual void send_heartbeat(uint8_t system_id, bool fixed_wing)=0
std::function< void(Command)> command_callback_
void register_param_request_list_callback(std::function< void(uint8_t)> callback)
virtual void send_output_raw(uint8_t system_id, uint32_t timestamp_ms, const float raw_outputs[8])=0
virtual void send_rc_raw(uint8_t system_id, uint32_t timestamp_ms, const uint16_t channels[8])=0
virtual void send_timesync(uint8_t system_id, int64_t tc1, int64_t ts1)=0
void register_command_callback(std::function< void(Command)> callback)
std::function< void(const OffboardControl)> offboard_control_callback_
virtual void send_imu(uint8_t system_id, uint64_t timestamp_us, const turbomath::Vector &accel, const turbomath::Vector &gyro, float temperature)=0
void register_heartbeat_callback(std::function< void()> callback)
void register_attitude_correction_callback(std::function< void(const turbomath::Quaternion)> callback)
std::function< void(void)> heartbeat_callback_