├── README.md ├── c ├── CMakeLists.txt ├── main.c └── mavlink │ ├── ardupilotmega │ ├── ardupilotmega.h │ ├── ardupilotmega.hpp │ ├── gtestsuite.hpp │ ├── mavlink.h │ ├── mavlink_msg_adap_tuning.h │ ├── mavlink_msg_adap_tuning.hpp │ ├── mavlink_msg_ahrs.h │ ├── mavlink_msg_ahrs.hpp │ ├── mavlink_msg_ahrs2.h │ ├── mavlink_msg_ahrs2.hpp │ ├── mavlink_msg_ahrs3.h │ ├── mavlink_msg_ahrs3.hpp │ ├── mavlink_msg_airspeed_autocal.h │ ├── mavlink_msg_airspeed_autocal.hpp │ ├── mavlink_msg_aoa_ssa.h │ ├── mavlink_msg_aoa_ssa.hpp │ ├── mavlink_msg_ap_adc.h │ ├── mavlink_msg_ap_adc.hpp │ ├── mavlink_msg_autopilot_version_request.h │ ├── mavlink_msg_autopilot_version_request.hpp │ ├── mavlink_msg_battery2.h │ ├── mavlink_msg_battery2.hpp │ ├── mavlink_msg_camera_feedback.h │ ├── mavlink_msg_camera_feedback.hpp │ ├── mavlink_msg_camera_status.h │ ├── mavlink_msg_camera_status.hpp │ ├── mavlink_msg_compassmot_status.h │ ├── mavlink_msg_compassmot_status.hpp │ ├── mavlink_msg_data16.h │ ├── mavlink_msg_data16.hpp │ ├── mavlink_msg_data32.h │ ├── mavlink_msg_data32.hpp │ ├── mavlink_msg_data64.h │ ├── mavlink_msg_data64.hpp │ ├── mavlink_msg_data96.h │ ├── mavlink_msg_data96.hpp │ ├── mavlink_msg_deepstall.h │ ├── mavlink_msg_deepstall.hpp │ ├── mavlink_msg_device_op_read.h │ ├── mavlink_msg_device_op_read.hpp │ ├── mavlink_msg_device_op_read_reply.h │ ├── mavlink_msg_device_op_read_reply.hpp │ ├── mavlink_msg_device_op_write.h │ ├── mavlink_msg_device_op_write.hpp │ ├── mavlink_msg_device_op_write_reply.h │ ├── mavlink_msg_device_op_write_reply.hpp │ ├── mavlink_msg_digicam_configure.h │ ├── mavlink_msg_digicam_configure.hpp │ ├── mavlink_msg_digicam_control.h │ ├── mavlink_msg_digicam_control.hpp │ ├── mavlink_msg_ekf_status_report.h │ ├── mavlink_msg_ekf_status_report.hpp │ ├── mavlink_msg_esc_telemetry_13_to_16.h │ ├── mavlink_msg_esc_telemetry_13_to_16.hpp │ ├── mavlink_msg_esc_telemetry_17_to_20.h │ ├── mavlink_msg_esc_telemetry_17_to_20.hpp │ ├── mavlink_msg_esc_telemetry_1_to_4.h │ ├── mavlink_msg_esc_telemetry_1_to_4.hpp │ ├── mavlink_msg_esc_telemetry_21_to_24.h │ ├── mavlink_msg_esc_telemetry_21_to_24.hpp │ ├── mavlink_msg_esc_telemetry_25_to_28.h │ ├── mavlink_msg_esc_telemetry_25_to_28.hpp │ ├── mavlink_msg_esc_telemetry_29_to_32.h │ ├── mavlink_msg_esc_telemetry_29_to_32.hpp │ ├── mavlink_msg_esc_telemetry_5_to_8.h │ ├── mavlink_msg_esc_telemetry_5_to_8.hpp │ ├── mavlink_msg_esc_telemetry_9_to_12.h │ ├── mavlink_msg_esc_telemetry_9_to_12.hpp │ ├── mavlink_msg_fence_fetch_point.h │ ├── mavlink_msg_fence_fetch_point.hpp │ ├── mavlink_msg_fence_point.h │ ├── mavlink_msg_fence_point.hpp │ ├── mavlink_msg_gimbal_control.h │ ├── mavlink_msg_gimbal_control.hpp │ ├── mavlink_msg_gimbal_report.h │ ├── mavlink_msg_gimbal_report.hpp │ ├── mavlink_msg_gimbal_torque_cmd_report.h │ ├── mavlink_msg_gimbal_torque_cmd_report.hpp │ ├── mavlink_msg_gopro_get_request.h │ ├── mavlink_msg_gopro_get_request.hpp │ ├── mavlink_msg_gopro_get_response.h │ ├── mavlink_msg_gopro_get_response.hpp │ ├── mavlink_msg_gopro_heartbeat.h │ ├── mavlink_msg_gopro_heartbeat.hpp │ ├── mavlink_msg_gopro_set_request.h │ ├── mavlink_msg_gopro_set_request.hpp │ ├── mavlink_msg_gopro_set_response.h │ ├── mavlink_msg_gopro_set_response.hpp │ ├── mavlink_msg_hwstatus.h │ ├── mavlink_msg_hwstatus.hpp │ ├── mavlink_msg_led_control.h │ ├── mavlink_msg_led_control.hpp │ ├── mavlink_msg_limits_status.h │ ├── mavlink_msg_limits_status.hpp │ ├── mavlink_msg_mag_cal_progress.h │ ├── mavlink_msg_mag_cal_progress.hpp │ ├── mavlink_msg_mcu_status.h │ ├── mavlink_msg_mcu_status.hpp │ ├── mavlink_msg_meminfo.h │ ├── mavlink_msg_meminfo.hpp │ ├── mavlink_msg_mount_configure.h │ ├── mavlink_msg_mount_configure.hpp │ ├── mavlink_msg_mount_control.h │ ├── mavlink_msg_mount_control.hpp │ ├── mavlink_msg_mount_status.h │ ├── mavlink_msg_mount_status.hpp │ ├── mavlink_msg_obstacle_distance_3d.h │ ├── mavlink_msg_obstacle_distance_3d.hpp │ ├── mavlink_msg_osd_param_config.h │ ├── mavlink_msg_osd_param_config.hpp │ ├── mavlink_msg_osd_param_config_reply.h │ ├── mavlink_msg_osd_param_config_reply.hpp │ ├── mavlink_msg_osd_param_show_config.h │ ├── mavlink_msg_osd_param_show_config.hpp │ ├── mavlink_msg_osd_param_show_config_reply.h │ ├── mavlink_msg_osd_param_show_config_reply.hpp │ ├── mavlink_msg_pid_tuning.h │ ├── mavlink_msg_pid_tuning.hpp │ ├── mavlink_msg_radio.h │ ├── mavlink_msg_radio.hpp │ ├── mavlink_msg_rally_fetch_point.h │ ├── mavlink_msg_rally_fetch_point.hpp │ ├── mavlink_msg_rally_point.h │ ├── mavlink_msg_rally_point.hpp │ ├── mavlink_msg_rangefinder.h │ ├── mavlink_msg_rangefinder.hpp │ ├── mavlink_msg_remote_log_block_status.h │ ├── mavlink_msg_remote_log_block_status.hpp │ ├── mavlink_msg_remote_log_data_block.h │ ├── mavlink_msg_remote_log_data_block.hpp │ ├── mavlink_msg_rpm.h │ ├── mavlink_msg_rpm.hpp │ ├── mavlink_msg_secure_command.h │ ├── mavlink_msg_secure_command.hpp │ ├── mavlink_msg_secure_command_reply.h │ ├── mavlink_msg_secure_command_reply.hpp │ ├── mavlink_msg_sensor_offsets.h │ ├── mavlink_msg_sensor_offsets.hpp │ ├── mavlink_msg_set_mag_offsets.h │ ├── mavlink_msg_set_mag_offsets.hpp │ ├── mavlink_msg_simstate.h │ ├── mavlink_msg_simstate.hpp │ ├── mavlink_msg_vision_position_delta.h │ ├── mavlink_msg_vision_position_delta.hpp │ ├── mavlink_msg_water_depth.h │ ├── mavlink_msg_water_depth.hpp │ ├── mavlink_msg_wind.h │ ├── mavlink_msg_wind.hpp │ ├── testsuite.h │ └── version.h │ ├── checksum.h │ ├── common │ ├── common.h │ ├── common.hpp │ ├── gtestsuite.hpp │ ├── mavlink.h │ ├── mavlink_msg_actuator_control_target.h │ ├── mavlink_msg_actuator_control_target.hpp │ ├── mavlink_msg_actuator_output_status.h │ ├── mavlink_msg_actuator_output_status.hpp │ ├── mavlink_msg_adsb_vehicle.h │ ├── mavlink_msg_adsb_vehicle.hpp │ ├── mavlink_msg_ais_vessel.h │ ├── mavlink_msg_ais_vessel.hpp │ ├── mavlink_msg_altitude.h │ ├── mavlink_msg_altitude.hpp │ ├── mavlink_msg_att_pos_mocap.h │ ├── mavlink_msg_att_pos_mocap.hpp │ ├── mavlink_msg_attitude.h │ ├── mavlink_msg_attitude.hpp │ ├── mavlink_msg_attitude_quaternion.h │ ├── mavlink_msg_attitude_quaternion.hpp │ ├── mavlink_msg_attitude_quaternion_cov.h │ ├── mavlink_msg_attitude_quaternion_cov.hpp │ ├── mavlink_msg_attitude_target.h │ ├── mavlink_msg_attitude_target.hpp │ ├── mavlink_msg_auth_key.h │ ├── mavlink_msg_auth_key.hpp │ ├── mavlink_msg_autopilot_state_for_gimbal_device.h │ ├── mavlink_msg_autopilot_state_for_gimbal_device.hpp │ ├── mavlink_msg_autopilot_version.h │ ├── mavlink_msg_autopilot_version.hpp │ ├── mavlink_msg_battery_status.h │ ├── mavlink_msg_battery_status.hpp │ ├── mavlink_msg_button_change.h │ ├── mavlink_msg_button_change.hpp │ ├── mavlink_msg_camera_capture_status.h │ ├── mavlink_msg_camera_capture_status.hpp │ ├── mavlink_msg_camera_fov_status.h │ ├── mavlink_msg_camera_fov_status.hpp │ ├── mavlink_msg_camera_image_captured.h │ ├── mavlink_msg_camera_image_captured.hpp │ ├── mavlink_msg_camera_information.h │ ├── mavlink_msg_camera_information.hpp │ ├── mavlink_msg_camera_settings.h │ ├── mavlink_msg_camera_settings.hpp │ ├── mavlink_msg_camera_tracking_geo_status.h │ ├── mavlink_msg_camera_tracking_geo_status.hpp │ ├── mavlink_msg_camera_tracking_image_status.h │ ├── mavlink_msg_camera_tracking_image_status.hpp │ ├── mavlink_msg_camera_trigger.h │ ├── mavlink_msg_camera_trigger.hpp │ ├── mavlink_msg_can_filter_modify.h │ ├── mavlink_msg_can_filter_modify.hpp │ ├── mavlink_msg_can_frame.h │ ├── mavlink_msg_can_frame.hpp │ ├── mavlink_msg_canfd_frame.h │ ├── mavlink_msg_canfd_frame.hpp │ ├── mavlink_msg_change_operator_control.h │ ├── mavlink_msg_change_operator_control.hpp │ ├── mavlink_msg_change_operator_control_ack.h │ ├── mavlink_msg_change_operator_control_ack.hpp │ ├── mavlink_msg_collision.h │ ├── mavlink_msg_collision.hpp │ ├── mavlink_msg_command_ack.h │ ├── mavlink_msg_command_ack.hpp │ ├── mavlink_msg_command_int.h │ ├── mavlink_msg_command_int.hpp │ ├── mavlink_msg_command_long.h │ ├── mavlink_msg_command_long.hpp │ ├── mavlink_msg_control_system_state.h │ ├── mavlink_msg_control_system_state.hpp │ ├── mavlink_msg_data_stream.h │ ├── mavlink_msg_data_stream.hpp │ ├── mavlink_msg_data_transmission_handshake.h │ ├── mavlink_msg_data_transmission_handshake.hpp │ ├── mavlink_msg_debug.h │ ├── mavlink_msg_debug.hpp │ ├── mavlink_msg_debug_float_array.h │ ├── mavlink_msg_debug_float_array.hpp │ ├── mavlink_msg_debug_vect.h │ ├── mavlink_msg_debug_vect.hpp │ ├── mavlink_msg_distance_sensor.h │ ├── mavlink_msg_distance_sensor.hpp │ ├── mavlink_msg_efi_status.h │ ├── mavlink_msg_efi_status.hpp │ ├── mavlink_msg_encapsulated_data.h │ ├── mavlink_msg_encapsulated_data.hpp │ ├── mavlink_msg_estimator_status.h │ ├── mavlink_msg_estimator_status.hpp │ ├── mavlink_msg_extended_sys_state.h │ ├── mavlink_msg_extended_sys_state.hpp │ ├── mavlink_msg_fence_status.h │ ├── mavlink_msg_fence_status.hpp │ ├── mavlink_msg_file_transfer_protocol.h │ ├── mavlink_msg_file_transfer_protocol.hpp │ ├── mavlink_msg_flight_information.h │ ├── mavlink_msg_flight_information.hpp │ ├── mavlink_msg_follow_target.h │ ├── mavlink_msg_follow_target.hpp │ ├── mavlink_msg_generator_status.h │ ├── mavlink_msg_generator_status.hpp │ ├── mavlink_msg_gimbal_device_attitude_status.h │ ├── mavlink_msg_gimbal_device_attitude_status.hpp │ ├── mavlink_msg_gimbal_device_information.h │ ├── mavlink_msg_gimbal_device_information.hpp │ ├── mavlink_msg_gimbal_device_set_attitude.h │ ├── mavlink_msg_gimbal_device_set_attitude.hpp │ ├── mavlink_msg_gimbal_manager_information.h │ ├── mavlink_msg_gimbal_manager_information.hpp │ ├── mavlink_msg_gimbal_manager_set_attitude.h │ ├── mavlink_msg_gimbal_manager_set_attitude.hpp │ ├── mavlink_msg_gimbal_manager_set_manual_control.h │ ├── mavlink_msg_gimbal_manager_set_manual_control.hpp │ ├── mavlink_msg_gimbal_manager_set_pitchyaw.h │ ├── mavlink_msg_gimbal_manager_set_pitchyaw.hpp │ ├── mavlink_msg_gimbal_manager_status.h │ ├── mavlink_msg_gimbal_manager_status.hpp │ ├── mavlink_msg_global_position_int.h │ ├── mavlink_msg_global_position_int.hpp │ ├── mavlink_msg_global_position_int_cov.h │ ├── mavlink_msg_global_position_int_cov.hpp │ ├── mavlink_msg_global_vision_position_estimate.h │ ├── mavlink_msg_global_vision_position_estimate.hpp │ ├── mavlink_msg_gps2_raw.h │ ├── mavlink_msg_gps2_raw.hpp │ ├── mavlink_msg_gps2_rtk.h │ ├── mavlink_msg_gps2_rtk.hpp │ ├── mavlink_msg_gps_global_origin.h │ ├── mavlink_msg_gps_global_origin.hpp │ ├── mavlink_msg_gps_inject_data.h │ ├── mavlink_msg_gps_inject_data.hpp │ ├── mavlink_msg_gps_input.h │ ├── mavlink_msg_gps_input.hpp │ ├── mavlink_msg_gps_raw_int.h │ ├── mavlink_msg_gps_raw_int.hpp │ ├── mavlink_msg_gps_rtcm_data.h │ ├── mavlink_msg_gps_rtcm_data.hpp │ ├── mavlink_msg_gps_rtk.h │ ├── mavlink_msg_gps_rtk.hpp │ ├── mavlink_msg_gps_status.h │ ├── mavlink_msg_gps_status.hpp │ ├── mavlink_msg_high_latency.h │ ├── mavlink_msg_high_latency.hpp │ ├── mavlink_msg_high_latency2.h │ ├── mavlink_msg_high_latency2.hpp │ ├── mavlink_msg_highres_imu.h │ ├── mavlink_msg_highres_imu.hpp │ ├── mavlink_msg_hil_actuator_controls.h │ ├── mavlink_msg_hil_actuator_controls.hpp │ ├── mavlink_msg_hil_controls.h │ ├── mavlink_msg_hil_controls.hpp │ ├── mavlink_msg_hil_gps.h │ ├── mavlink_msg_hil_gps.hpp │ ├── mavlink_msg_hil_optical_flow.h │ ├── mavlink_msg_hil_optical_flow.hpp │ ├── mavlink_msg_hil_rc_inputs_raw.h │ ├── mavlink_msg_hil_rc_inputs_raw.hpp │ ├── mavlink_msg_hil_sensor.h │ ├── mavlink_msg_hil_sensor.hpp │ ├── mavlink_msg_hil_state.h │ ├── mavlink_msg_hil_state.hpp │ ├── mavlink_msg_hil_state_quaternion.h │ ├── mavlink_msg_hil_state_quaternion.hpp │ ├── mavlink_msg_home_position.h │ ├── mavlink_msg_home_position.hpp │ ├── mavlink_msg_hygrometer_sensor.h │ ├── mavlink_msg_hygrometer_sensor.hpp │ ├── mavlink_msg_isbd_link_status.h │ ├── mavlink_msg_isbd_link_status.hpp │ ├── mavlink_msg_landing_target.h │ ├── mavlink_msg_landing_target.hpp │ ├── mavlink_msg_local_position_ned.h │ ├── mavlink_msg_local_position_ned.hpp │ ├── mavlink_msg_local_position_ned_cov.h │ ├── mavlink_msg_local_position_ned_cov.hpp │ ├── mavlink_msg_local_position_ned_system_global_offset.h │ ├── mavlink_msg_local_position_ned_system_global_offset.hpp │ ├── mavlink_msg_log_data.h │ ├── mavlink_msg_log_data.hpp │ ├── mavlink_msg_log_entry.h │ ├── mavlink_msg_log_entry.hpp │ ├── mavlink_msg_log_erase.h │ ├── mavlink_msg_log_erase.hpp │ ├── mavlink_msg_log_request_data.h │ ├── mavlink_msg_log_request_data.hpp │ ├── mavlink_msg_log_request_end.h │ ├── mavlink_msg_log_request_end.hpp │ ├── mavlink_msg_log_request_list.h │ ├── mavlink_msg_log_request_list.hpp │ ├── mavlink_msg_logging_ack.h │ ├── mavlink_msg_logging_ack.hpp │ ├── mavlink_msg_logging_data.h │ ├── mavlink_msg_logging_data.hpp │ ├── mavlink_msg_logging_data_acked.h │ ├── mavlink_msg_logging_data_acked.hpp │ ├── mavlink_msg_mag_cal_report.h │ ├── mavlink_msg_mag_cal_report.hpp │ ├── mavlink_msg_manual_control.h │ ├── mavlink_msg_manual_control.hpp │ ├── mavlink_msg_manual_setpoint.h │ ├── mavlink_msg_manual_setpoint.hpp │ ├── mavlink_msg_memory_vect.h │ ├── mavlink_msg_memory_vect.hpp │ ├── mavlink_msg_message_interval.h │ ├── mavlink_msg_message_interval.hpp │ ├── mavlink_msg_mission_ack.h │ ├── mavlink_msg_mission_ack.hpp │ ├── mavlink_msg_mission_clear_all.h │ ├── mavlink_msg_mission_clear_all.hpp │ ├── mavlink_msg_mission_count.h │ ├── mavlink_msg_mission_count.hpp │ ├── mavlink_msg_mission_current.h │ ├── mavlink_msg_mission_current.hpp │ ├── mavlink_msg_mission_item.h │ ├── mavlink_msg_mission_item.hpp │ ├── mavlink_msg_mission_item_int.h │ ├── mavlink_msg_mission_item_int.hpp │ ├── mavlink_msg_mission_item_reached.h │ ├── mavlink_msg_mission_item_reached.hpp │ ├── mavlink_msg_mission_request.h │ ├── mavlink_msg_mission_request.hpp │ ├── mavlink_msg_mission_request_int.h │ ├── mavlink_msg_mission_request_int.hpp │ ├── mavlink_msg_mission_request_list.h │ ├── mavlink_msg_mission_request_list.hpp │ ├── mavlink_msg_mission_request_partial_list.h │ ├── mavlink_msg_mission_request_partial_list.hpp │ ├── mavlink_msg_mission_set_current.h │ ├── mavlink_msg_mission_set_current.hpp │ ├── mavlink_msg_mission_write_partial_list.h │ ├── mavlink_msg_mission_write_partial_list.hpp │ ├── mavlink_msg_mount_orientation.h │ ├── mavlink_msg_mount_orientation.hpp │ ├── mavlink_msg_named_value_float.h │ ├── mavlink_msg_named_value_float.hpp │ ├── mavlink_msg_named_value_int.h │ ├── mavlink_msg_named_value_int.hpp │ ├── mavlink_msg_nav_controller_output.h │ ├── mavlink_msg_nav_controller_output.hpp │ ├── mavlink_msg_obstacle_distance.h │ ├── mavlink_msg_obstacle_distance.hpp │ ├── mavlink_msg_odometry.h │ ├── mavlink_msg_odometry.hpp │ ├── mavlink_msg_open_drone_id_arm_status.h │ ├── mavlink_msg_open_drone_id_arm_status.hpp │ ├── mavlink_msg_open_drone_id_authentication.h │ ├── mavlink_msg_open_drone_id_authentication.hpp │ ├── mavlink_msg_open_drone_id_basic_id.h │ ├── mavlink_msg_open_drone_id_basic_id.hpp │ ├── mavlink_msg_open_drone_id_location.h │ ├── mavlink_msg_open_drone_id_location.hpp │ ├── mavlink_msg_open_drone_id_message_pack.h │ ├── mavlink_msg_open_drone_id_message_pack.hpp │ ├── mavlink_msg_open_drone_id_operator_id.h │ ├── mavlink_msg_open_drone_id_operator_id.hpp │ ├── mavlink_msg_open_drone_id_self_id.h │ ├── mavlink_msg_open_drone_id_self_id.hpp │ ├── mavlink_msg_open_drone_id_system.h │ ├── mavlink_msg_open_drone_id_system.hpp │ ├── mavlink_msg_open_drone_id_system_update.h │ ├── mavlink_msg_open_drone_id_system_update.hpp │ ├── mavlink_msg_optical_flow.h │ ├── mavlink_msg_optical_flow.hpp │ ├── mavlink_msg_optical_flow_rad.h │ ├── mavlink_msg_optical_flow_rad.hpp │ ├── mavlink_msg_param_ext_ack.h │ ├── mavlink_msg_param_ext_ack.hpp │ ├── mavlink_msg_param_ext_request_list.h │ ├── mavlink_msg_param_ext_request_list.hpp │ ├── mavlink_msg_param_ext_request_read.h │ ├── mavlink_msg_param_ext_request_read.hpp │ ├── mavlink_msg_param_ext_set.h │ ├── mavlink_msg_param_ext_set.hpp │ ├── mavlink_msg_param_ext_value.h │ ├── mavlink_msg_param_ext_value.hpp │ ├── mavlink_msg_param_map_rc.h │ ├── mavlink_msg_param_map_rc.hpp │ ├── mavlink_msg_param_request_list.h │ ├── mavlink_msg_param_request_list.hpp │ ├── mavlink_msg_param_request_read.h │ ├── mavlink_msg_param_request_read.hpp │ ├── mavlink_msg_param_set.h │ ├── mavlink_msg_param_set.hpp │ ├── mavlink_msg_param_value.h │ ├── mavlink_msg_param_value.hpp │ ├── mavlink_msg_ping.h │ ├── mavlink_msg_ping.hpp │ ├── mavlink_msg_play_tune.h │ ├── mavlink_msg_play_tune.hpp │ ├── mavlink_msg_position_target_global_int.h │ ├── mavlink_msg_position_target_global_int.hpp │ ├── mavlink_msg_position_target_local_ned.h │ ├── mavlink_msg_position_target_local_ned.hpp │ ├── mavlink_msg_power_status.h │ ├── mavlink_msg_power_status.hpp │ ├── mavlink_msg_radio_status.h │ ├── mavlink_msg_radio_status.hpp │ ├── mavlink_msg_raw_imu.h │ ├── mavlink_msg_raw_imu.hpp │ ├── mavlink_msg_raw_pressure.h │ ├── mavlink_msg_raw_pressure.hpp │ ├── mavlink_msg_raw_rpm.h │ ├── mavlink_msg_raw_rpm.hpp │ ├── mavlink_msg_rc_channels.h │ ├── mavlink_msg_rc_channels.hpp │ ├── mavlink_msg_rc_channels_override.h │ ├── mavlink_msg_rc_channels_override.hpp │ ├── mavlink_msg_rc_channels_raw.h │ ├── mavlink_msg_rc_channels_raw.hpp │ ├── mavlink_msg_rc_channels_scaled.h │ ├── mavlink_msg_rc_channels_scaled.hpp │ ├── mavlink_msg_relay_status.h │ ├── mavlink_msg_relay_status.hpp │ ├── mavlink_msg_request_data_stream.h │ ├── mavlink_msg_request_data_stream.hpp │ ├── mavlink_msg_resource_request.h │ ├── mavlink_msg_resource_request.hpp │ ├── mavlink_msg_safety_allowed_area.h │ ├── mavlink_msg_safety_allowed_area.hpp │ ├── mavlink_msg_safety_set_allowed_area.h │ ├── mavlink_msg_safety_set_allowed_area.hpp │ ├── mavlink_msg_scaled_imu.h │ ├── mavlink_msg_scaled_imu.hpp │ ├── mavlink_msg_scaled_imu2.h │ ├── mavlink_msg_scaled_imu2.hpp │ ├── mavlink_msg_scaled_imu3.h │ ├── mavlink_msg_scaled_imu3.hpp │ ├── mavlink_msg_scaled_pressure.h │ ├── mavlink_msg_scaled_pressure.hpp │ ├── mavlink_msg_scaled_pressure2.h │ ├── mavlink_msg_scaled_pressure2.hpp │ ├── mavlink_msg_scaled_pressure3.h │ ├── mavlink_msg_scaled_pressure3.hpp │ ├── mavlink_msg_serial_control.h │ ├── mavlink_msg_serial_control.hpp │ ├── mavlink_msg_servo_output_raw.h │ ├── mavlink_msg_servo_output_raw.hpp │ ├── mavlink_msg_set_actuator_control_target.h │ ├── mavlink_msg_set_actuator_control_target.hpp │ ├── mavlink_msg_set_attitude_target.h │ ├── mavlink_msg_set_attitude_target.hpp │ ├── mavlink_msg_set_gps_global_origin.h │ ├── mavlink_msg_set_gps_global_origin.hpp │ ├── mavlink_msg_set_home_position.h │ ├── mavlink_msg_set_home_position.hpp │ ├── mavlink_msg_set_mode.h │ ├── mavlink_msg_set_mode.hpp │ ├── mavlink_msg_set_position_target_global_int.h │ ├── mavlink_msg_set_position_target_global_int.hpp │ ├── mavlink_msg_set_position_target_local_ned.h │ ├── mavlink_msg_set_position_target_local_ned.hpp │ ├── mavlink_msg_setup_signing.h │ ├── mavlink_msg_setup_signing.hpp │ ├── mavlink_msg_sim_state.h │ ├── mavlink_msg_sim_state.hpp │ ├── mavlink_msg_smart_battery_info.h │ ├── mavlink_msg_smart_battery_info.hpp │ ├── mavlink_msg_statustext.h │ ├── mavlink_msg_statustext.hpp │ ├── mavlink_msg_storage_information.h │ ├── mavlink_msg_storage_information.hpp │ ├── mavlink_msg_sys_status.h │ ├── mavlink_msg_sys_status.hpp │ ├── mavlink_msg_system_time.h │ ├── mavlink_msg_system_time.hpp │ ├── mavlink_msg_terrain_check.h │ ├── mavlink_msg_terrain_check.hpp │ ├── mavlink_msg_terrain_data.h │ ├── mavlink_msg_terrain_data.hpp │ ├── mavlink_msg_terrain_report.h │ ├── mavlink_msg_terrain_report.hpp │ ├── mavlink_msg_terrain_request.h │ ├── mavlink_msg_terrain_request.hpp │ ├── mavlink_msg_timesync.h │ ├── mavlink_msg_timesync.hpp │ ├── mavlink_msg_tunnel.h │ ├── mavlink_msg_tunnel.hpp │ ├── mavlink_msg_uavcan_node_info.h │ ├── mavlink_msg_uavcan_node_info.hpp │ ├── mavlink_msg_uavcan_node_status.h │ ├── mavlink_msg_uavcan_node_status.hpp │ ├── mavlink_msg_utm_global_position.h │ ├── mavlink_msg_utm_global_position.hpp │ ├── mavlink_msg_v2_extension.h │ ├── mavlink_msg_v2_extension.hpp │ ├── mavlink_msg_vfr_hud.h │ ├── mavlink_msg_vfr_hud.hpp │ ├── mavlink_msg_vibration.h │ ├── mavlink_msg_vibration.hpp │ ├── mavlink_msg_vicon_position_estimate.h │ ├── mavlink_msg_vicon_position_estimate.hpp │ ├── mavlink_msg_video_stream_information.h │ ├── mavlink_msg_video_stream_information.hpp │ ├── mavlink_msg_video_stream_status.h │ ├── mavlink_msg_video_stream_status.hpp │ ├── mavlink_msg_vision_position_estimate.h │ ├── mavlink_msg_vision_position_estimate.hpp │ ├── mavlink_msg_vision_speed_estimate.h │ ├── mavlink_msg_vision_speed_estimate.hpp │ ├── mavlink_msg_wheel_distance.h │ ├── mavlink_msg_wheel_distance.hpp │ ├── mavlink_msg_wifi_config_ap.h │ ├── mavlink_msg_wifi_config_ap.hpp │ ├── mavlink_msg_winch_status.h │ ├── mavlink_msg_winch_status.hpp │ ├── mavlink_msg_wind_cov.h │ ├── mavlink_msg_wind_cov.hpp │ ├── testsuite.h │ └── version.h │ ├── csAirLink │ ├── csAirLink.h │ ├── csAirLink.hpp │ ├── gtestsuite.hpp │ ├── mavlink.h │ ├── mavlink_msg_airlink_auth.h │ ├── mavlink_msg_airlink_auth.hpp │ ├── mavlink_msg_airlink_auth_response.h │ ├── mavlink_msg_airlink_auth_response.hpp │ ├── testsuite.h │ └── version.h │ ├── cubepilot │ ├── cubepilot.h │ ├── cubepilot.hpp │ ├── gtestsuite.hpp │ ├── mavlink.h │ ├── mavlink_msg_cubepilot_firmware_update_resp.h │ ├── mavlink_msg_cubepilot_firmware_update_resp.hpp │ ├── mavlink_msg_cubepilot_firmware_update_start.h │ ├── mavlink_msg_cubepilot_firmware_update_start.hpp │ ├── mavlink_msg_cubepilot_raw_rc.h │ ├── mavlink_msg_cubepilot_raw_rc.hpp │ ├── mavlink_msg_herelink_telem.h │ ├── mavlink_msg_herelink_telem.hpp │ ├── mavlink_msg_herelink_video_stream_information.h │ ├── mavlink_msg_herelink_video_stream_information.hpp │ ├── testsuite.h │ └── version.h │ ├── icarous │ ├── gtestsuite.hpp │ ├── icarous.h │ ├── icarous.hpp │ ├── mavlink.h │ ├── mavlink_msg_icarous_heartbeat.h │ ├── mavlink_msg_icarous_heartbeat.hpp │ ├── mavlink_msg_icarous_kinematic_bands.h │ ├── mavlink_msg_icarous_kinematic_bands.hpp │ ├── testsuite.h │ └── version.h │ ├── loweheiser │ ├── gtestsuite.hpp │ ├── loweheiser.h │ ├── loweheiser.hpp │ ├── mavlink.h │ ├── mavlink_msg_loweheiser_gov_efi.h │ ├── mavlink_msg_loweheiser_gov_efi.hpp │ ├── testsuite.h │ └── version.h │ ├── mavlink_conversions.h │ ├── mavlink_get_info.h │ ├── mavlink_helpers.h │ ├── mavlink_sha256.h │ ├── mavlink_types.h │ ├── message.hpp │ ├── minimal │ ├── gtestsuite.hpp │ ├── mavlink.h │ ├── mavlink_msg_heartbeat.h │ ├── mavlink_msg_heartbeat.hpp │ ├── minimal.h │ ├── minimal.hpp │ ├── testsuite.h │ └── version.h │ ├── msgmap.hpp │ ├── protocol.h │ └── uAvionix │ ├── gtestsuite.hpp │ ├── mavlink.h │ ├── mavlink_msg_uavionix_adsb_get.h │ ├── mavlink_msg_uavionix_adsb_get.hpp │ ├── mavlink_msg_uavionix_adsb_out_cfg.h │ ├── mavlink_msg_uavionix_adsb_out_cfg.hpp │ ├── mavlink_msg_uavionix_adsb_out_cfg_flightid.h │ ├── mavlink_msg_uavionix_adsb_out_cfg_flightid.hpp │ ├── mavlink_msg_uavionix_adsb_out_cfg_registration.h │ ├── mavlink_msg_uavionix_adsb_out_cfg_registration.hpp │ ├── mavlink_msg_uavionix_adsb_out_control.h │ ├── mavlink_msg_uavionix_adsb_out_control.hpp │ ├── mavlink_msg_uavionix_adsb_out_dynamic.h │ ├── mavlink_msg_uavionix_adsb_out_dynamic.hpp │ ├── mavlink_msg_uavionix_adsb_out_status.h │ ├── mavlink_msg_uavionix_adsb_out_status.hpp │ ├── mavlink_msg_uavionix_adsb_transceiver_health_report.h │ ├── mavlink_msg_uavionix_adsb_transceiver_health_report.hpp │ ├── testsuite.h │ ├── uAvionix.h │ ├── uAvionix.hpp │ └── version.h ├── c_vscode ├── .gitignore ├── .vscode │ ├── c_cpp_properties.json │ ├── cmake-kits.json │ ├── extensions.json │ ├── launch.json │ ├── settings.json │ └── tasks.json ├── CMakeLists.txt ├── mavlink │ ├── ardupilotmega │ │ ├── ardupilotmega.h │ │ ├── ardupilotmega.hpp │ │ ├── gtestsuite.hpp │ │ ├── mavlink.h │ │ ├── mavlink_msg_adap_tuning.h │ │ ├── mavlink_msg_adap_tuning.hpp │ │ ├── mavlink_msg_ahrs.h │ │ ├── mavlink_msg_ahrs.hpp │ │ ├── mavlink_msg_ahrs2.h │ │ ├── mavlink_msg_ahrs2.hpp │ │ ├── mavlink_msg_ahrs3.h │ │ ├── mavlink_msg_ahrs3.hpp │ │ ├── mavlink_msg_airspeed_autocal.h │ │ ├── mavlink_msg_airspeed_autocal.hpp │ │ ├── mavlink_msg_aoa_ssa.h │ │ ├── mavlink_msg_aoa_ssa.hpp │ │ ├── mavlink_msg_ap_adc.h │ │ ├── mavlink_msg_ap_adc.hpp │ │ ├── mavlink_msg_autopilot_version_request.h │ │ ├── mavlink_msg_autopilot_version_request.hpp │ │ ├── mavlink_msg_battery2.h │ │ ├── mavlink_msg_battery2.hpp │ │ ├── mavlink_msg_camera_feedback.h │ │ ├── mavlink_msg_camera_feedback.hpp │ │ ├── mavlink_msg_camera_status.h │ │ ├── mavlink_msg_camera_status.hpp │ │ ├── mavlink_msg_compassmot_status.h │ │ ├── mavlink_msg_compassmot_status.hpp │ │ ├── mavlink_msg_data16.h │ │ ├── mavlink_msg_data16.hpp │ │ ├── mavlink_msg_data32.h │ │ ├── mavlink_msg_data32.hpp │ │ ├── mavlink_msg_data64.h │ │ ├── mavlink_msg_data64.hpp │ │ ├── mavlink_msg_data96.h │ │ ├── mavlink_msg_data96.hpp │ │ ├── mavlink_msg_deepstall.h │ │ ├── mavlink_msg_deepstall.hpp │ │ ├── mavlink_msg_device_op_read.h │ │ ├── mavlink_msg_device_op_read.hpp │ │ ├── mavlink_msg_device_op_read_reply.h │ │ ├── mavlink_msg_device_op_read_reply.hpp │ │ ├── mavlink_msg_device_op_write.h │ │ ├── mavlink_msg_device_op_write.hpp │ │ ├── mavlink_msg_device_op_write_reply.h │ │ ├── mavlink_msg_device_op_write_reply.hpp │ │ ├── mavlink_msg_digicam_configure.h │ │ ├── mavlink_msg_digicam_configure.hpp │ │ ├── mavlink_msg_digicam_control.h │ │ ├── mavlink_msg_digicam_control.hpp │ │ ├── mavlink_msg_ekf_status_report.h │ │ ├── mavlink_msg_ekf_status_report.hpp │ │ ├── mavlink_msg_esc_telemetry_13_to_16.h │ │ ├── mavlink_msg_esc_telemetry_13_to_16.hpp │ │ ├── mavlink_msg_esc_telemetry_17_to_20.h │ │ ├── mavlink_msg_esc_telemetry_17_to_20.hpp │ │ ├── mavlink_msg_esc_telemetry_1_to_4.h │ │ ├── mavlink_msg_esc_telemetry_1_to_4.hpp │ │ ├── mavlink_msg_esc_telemetry_21_to_24.h │ │ ├── mavlink_msg_esc_telemetry_21_to_24.hpp │ │ ├── mavlink_msg_esc_telemetry_25_to_28.h │ │ ├── mavlink_msg_esc_telemetry_25_to_28.hpp │ │ ├── mavlink_msg_esc_telemetry_29_to_32.h │ │ ├── mavlink_msg_esc_telemetry_29_to_32.hpp │ │ ├── mavlink_msg_esc_telemetry_5_to_8.h │ │ ├── mavlink_msg_esc_telemetry_5_to_8.hpp │ │ ├── mavlink_msg_esc_telemetry_9_to_12.h │ │ ├── mavlink_msg_esc_telemetry_9_to_12.hpp │ │ ├── mavlink_msg_fence_fetch_point.h │ │ ├── mavlink_msg_fence_fetch_point.hpp │ │ ├── mavlink_msg_fence_point.h │ │ ├── mavlink_msg_fence_point.hpp │ │ ├── mavlink_msg_gimbal_control.h │ │ ├── mavlink_msg_gimbal_control.hpp │ │ ├── mavlink_msg_gimbal_report.h │ │ ├── mavlink_msg_gimbal_report.hpp │ │ ├── mavlink_msg_gimbal_torque_cmd_report.h │ │ ├── mavlink_msg_gimbal_torque_cmd_report.hpp │ │ ├── mavlink_msg_gopro_get_request.h │ │ ├── mavlink_msg_gopro_get_request.hpp │ │ ├── mavlink_msg_gopro_get_response.h │ │ ├── mavlink_msg_gopro_get_response.hpp │ │ ├── mavlink_msg_gopro_heartbeat.h │ │ ├── mavlink_msg_gopro_heartbeat.hpp │ │ ├── mavlink_msg_gopro_set_request.h │ │ ├── mavlink_msg_gopro_set_request.hpp │ │ ├── mavlink_msg_gopro_set_response.h │ │ ├── mavlink_msg_gopro_set_response.hpp │ │ ├── mavlink_msg_hwstatus.h │ │ ├── mavlink_msg_hwstatus.hpp │ │ ├── mavlink_msg_led_control.h │ │ ├── mavlink_msg_led_control.hpp │ │ ├── mavlink_msg_limits_status.h │ │ ├── mavlink_msg_limits_status.hpp │ │ ├── mavlink_msg_mag_cal_progress.h │ │ ├── mavlink_msg_mag_cal_progress.hpp │ │ ├── mavlink_msg_mcu_status.h │ │ ├── mavlink_msg_mcu_status.hpp │ │ ├── mavlink_msg_meminfo.h │ │ ├── mavlink_msg_meminfo.hpp │ │ ├── mavlink_msg_mount_configure.h │ │ ├── mavlink_msg_mount_configure.hpp │ │ ├── mavlink_msg_mount_control.h │ │ ├── mavlink_msg_mount_control.hpp │ │ ├── mavlink_msg_mount_status.h │ │ ├── mavlink_msg_mount_status.hpp │ │ ├── mavlink_msg_obstacle_distance_3d.h │ │ ├── mavlink_msg_obstacle_distance_3d.hpp │ │ ├── mavlink_msg_osd_param_config.h │ │ ├── mavlink_msg_osd_param_config.hpp │ │ ├── mavlink_msg_osd_param_config_reply.h │ │ ├── mavlink_msg_osd_param_config_reply.hpp │ │ ├── mavlink_msg_osd_param_show_config.h │ │ ├── mavlink_msg_osd_param_show_config.hpp │ │ ├── mavlink_msg_osd_param_show_config_reply.h │ │ ├── mavlink_msg_osd_param_show_config_reply.hpp │ │ ├── mavlink_msg_pid_tuning.h │ │ ├── mavlink_msg_pid_tuning.hpp │ │ ├── mavlink_msg_radio.h │ │ ├── mavlink_msg_radio.hpp │ │ ├── mavlink_msg_rally_fetch_point.h │ │ ├── mavlink_msg_rally_fetch_point.hpp │ │ ├── mavlink_msg_rally_point.h │ │ ├── mavlink_msg_rally_point.hpp │ │ ├── mavlink_msg_rangefinder.h │ │ ├── mavlink_msg_rangefinder.hpp │ │ ├── mavlink_msg_remote_log_block_status.h │ │ ├── mavlink_msg_remote_log_block_status.hpp │ │ ├── mavlink_msg_remote_log_data_block.h │ │ ├── mavlink_msg_remote_log_data_block.hpp │ │ ├── mavlink_msg_rpm.h │ │ ├── mavlink_msg_rpm.hpp │ │ ├── mavlink_msg_secure_command.h │ │ ├── mavlink_msg_secure_command.hpp │ │ ├── mavlink_msg_secure_command_reply.h │ │ ├── mavlink_msg_secure_command_reply.hpp │ │ ├── mavlink_msg_sensor_offsets.h │ │ ├── mavlink_msg_sensor_offsets.hpp │ │ ├── mavlink_msg_set_mag_offsets.h │ │ ├── mavlink_msg_set_mag_offsets.hpp │ │ ├── mavlink_msg_simstate.h │ │ ├── mavlink_msg_simstate.hpp │ │ ├── mavlink_msg_vision_position_delta.h │ │ ├── mavlink_msg_vision_position_delta.hpp │ │ ├── mavlink_msg_water_depth.h │ │ ├── mavlink_msg_water_depth.hpp │ │ ├── mavlink_msg_wind.h │ │ ├── mavlink_msg_wind.hpp │ │ ├── testsuite.h │ │ └── version.h │ ├── checksum.h │ ├── common │ │ ├── common.h │ │ ├── common.hpp │ │ ├── gtestsuite.hpp │ │ ├── mavlink.h │ │ ├── mavlink_msg_actuator_control_target.h │ │ ├── mavlink_msg_actuator_control_target.hpp │ │ ├── mavlink_msg_actuator_output_status.h │ │ ├── mavlink_msg_actuator_output_status.hpp │ │ ├── mavlink_msg_adsb_vehicle.h │ │ ├── mavlink_msg_adsb_vehicle.hpp │ │ ├── mavlink_msg_ais_vessel.h │ │ ├── mavlink_msg_ais_vessel.hpp │ │ ├── mavlink_msg_altitude.h │ │ ├── mavlink_msg_altitude.hpp │ │ ├── mavlink_msg_att_pos_mocap.h │ │ ├── mavlink_msg_att_pos_mocap.hpp │ │ ├── mavlink_msg_attitude.h │ │ ├── mavlink_msg_attitude.hpp │ │ ├── mavlink_msg_attitude_quaternion.h │ │ ├── mavlink_msg_attitude_quaternion.hpp │ │ ├── mavlink_msg_attitude_quaternion_cov.h │ │ ├── mavlink_msg_attitude_quaternion_cov.hpp │ │ ├── mavlink_msg_attitude_target.h │ │ ├── mavlink_msg_attitude_target.hpp │ │ ├── mavlink_msg_auth_key.h │ │ ├── mavlink_msg_auth_key.hpp │ │ ├── mavlink_msg_autopilot_state_for_gimbal_device.h │ │ ├── mavlink_msg_autopilot_state_for_gimbal_device.hpp │ │ ├── mavlink_msg_autopilot_version.h │ │ ├── mavlink_msg_autopilot_version.hpp │ │ ├── mavlink_msg_battery_status.h │ │ ├── mavlink_msg_battery_status.hpp │ │ ├── mavlink_msg_button_change.h │ │ ├── mavlink_msg_button_change.hpp │ │ ├── mavlink_msg_camera_capture_status.h │ │ ├── mavlink_msg_camera_capture_status.hpp │ │ ├── mavlink_msg_camera_fov_status.h │ │ ├── mavlink_msg_camera_fov_status.hpp │ │ ├── mavlink_msg_camera_image_captured.h │ │ ├── mavlink_msg_camera_image_captured.hpp │ │ ├── mavlink_msg_camera_information.h │ │ ├── mavlink_msg_camera_information.hpp │ │ ├── mavlink_msg_camera_settings.h │ │ ├── mavlink_msg_camera_settings.hpp │ │ ├── mavlink_msg_camera_tracking_geo_status.h │ │ ├── mavlink_msg_camera_tracking_geo_status.hpp │ │ ├── mavlink_msg_camera_tracking_image_status.h │ │ ├── mavlink_msg_camera_tracking_image_status.hpp │ │ ├── mavlink_msg_camera_trigger.h │ │ ├── mavlink_msg_camera_trigger.hpp │ │ ├── mavlink_msg_can_filter_modify.h │ │ ├── mavlink_msg_can_filter_modify.hpp │ │ ├── mavlink_msg_can_frame.h │ │ ├── mavlink_msg_can_frame.hpp │ │ ├── mavlink_msg_canfd_frame.h │ │ ├── mavlink_msg_canfd_frame.hpp │ │ ├── mavlink_msg_change_operator_control.h │ │ ├── mavlink_msg_change_operator_control.hpp │ │ ├── mavlink_msg_change_operator_control_ack.h │ │ ├── mavlink_msg_change_operator_control_ack.hpp │ │ ├── mavlink_msg_collision.h │ │ ├── mavlink_msg_collision.hpp │ │ ├── mavlink_msg_command_ack.h │ │ ├── mavlink_msg_command_ack.hpp │ │ ├── mavlink_msg_command_int.h │ │ ├── mavlink_msg_command_int.hpp │ │ ├── mavlink_msg_command_long.h │ │ ├── mavlink_msg_command_long.hpp │ │ ├── mavlink_msg_control_system_state.h │ │ ├── mavlink_msg_control_system_state.hpp │ │ ├── mavlink_msg_data_stream.h │ │ ├── mavlink_msg_data_stream.hpp │ │ ├── mavlink_msg_data_transmission_handshake.h │ │ ├── mavlink_msg_data_transmission_handshake.hpp │ │ ├── mavlink_msg_debug.h │ │ ├── mavlink_msg_debug.hpp │ │ ├── mavlink_msg_debug_float_array.h │ │ ├── mavlink_msg_debug_float_array.hpp │ │ ├── mavlink_msg_debug_vect.h │ │ ├── mavlink_msg_debug_vect.hpp │ │ ├── mavlink_msg_distance_sensor.h │ │ ├── mavlink_msg_distance_sensor.hpp │ │ ├── mavlink_msg_efi_status.h │ │ ├── mavlink_msg_efi_status.hpp │ │ ├── mavlink_msg_encapsulated_data.h │ │ ├── mavlink_msg_encapsulated_data.hpp │ │ ├── mavlink_msg_estimator_status.h │ │ ├── mavlink_msg_estimator_status.hpp │ │ ├── mavlink_msg_extended_sys_state.h │ │ ├── mavlink_msg_extended_sys_state.hpp │ │ ├── mavlink_msg_fence_status.h │ │ ├── mavlink_msg_fence_status.hpp │ │ ├── mavlink_msg_file_transfer_protocol.h │ │ ├── mavlink_msg_file_transfer_protocol.hpp │ │ ├── mavlink_msg_flight_information.h │ │ ├── mavlink_msg_flight_information.hpp │ │ ├── mavlink_msg_follow_target.h │ │ ├── mavlink_msg_follow_target.hpp │ │ ├── mavlink_msg_generator_status.h │ │ ├── mavlink_msg_generator_status.hpp │ │ ├── mavlink_msg_gimbal_device_attitude_status.h │ │ ├── mavlink_msg_gimbal_device_attitude_status.hpp │ │ ├── mavlink_msg_gimbal_device_information.h │ │ ├── mavlink_msg_gimbal_device_information.hpp │ │ ├── mavlink_msg_gimbal_device_set_attitude.h │ │ ├── mavlink_msg_gimbal_device_set_attitude.hpp │ │ ├── mavlink_msg_gimbal_manager_information.h │ │ ├── mavlink_msg_gimbal_manager_information.hpp │ │ ├── mavlink_msg_gimbal_manager_set_attitude.h │ │ ├── mavlink_msg_gimbal_manager_set_attitude.hpp │ │ ├── mavlink_msg_gimbal_manager_set_manual_control.h │ │ ├── mavlink_msg_gimbal_manager_set_manual_control.hpp │ │ ├── mavlink_msg_gimbal_manager_set_pitchyaw.h │ │ ├── mavlink_msg_gimbal_manager_set_pitchyaw.hpp │ │ ├── mavlink_msg_gimbal_manager_status.h │ │ ├── mavlink_msg_gimbal_manager_status.hpp │ │ ├── mavlink_msg_global_position_int.h │ │ ├── mavlink_msg_global_position_int.hpp │ │ ├── mavlink_msg_global_position_int_cov.h │ │ ├── mavlink_msg_global_position_int_cov.hpp │ │ ├── mavlink_msg_global_vision_position_estimate.h │ │ ├── mavlink_msg_global_vision_position_estimate.hpp │ │ ├── mavlink_msg_gps2_raw.h │ │ ├── mavlink_msg_gps2_raw.hpp │ │ ├── mavlink_msg_gps2_rtk.h │ │ ├── mavlink_msg_gps2_rtk.hpp │ │ ├── mavlink_msg_gps_global_origin.h │ │ ├── mavlink_msg_gps_global_origin.hpp │ │ ├── mavlink_msg_gps_inject_data.h │ │ ├── mavlink_msg_gps_inject_data.hpp │ │ ├── mavlink_msg_gps_input.h │ │ ├── mavlink_msg_gps_input.hpp │ │ ├── mavlink_msg_gps_raw_int.h │ │ ├── mavlink_msg_gps_raw_int.hpp │ │ ├── mavlink_msg_gps_rtcm_data.h │ │ ├── mavlink_msg_gps_rtcm_data.hpp │ │ ├── mavlink_msg_gps_rtk.h │ │ ├── mavlink_msg_gps_rtk.hpp │ │ ├── mavlink_msg_gps_status.h │ │ ├── mavlink_msg_gps_status.hpp │ │ ├── mavlink_msg_high_latency.h │ │ ├── mavlink_msg_high_latency.hpp │ │ ├── mavlink_msg_high_latency2.h │ │ ├── mavlink_msg_high_latency2.hpp │ │ ├── mavlink_msg_highres_imu.h │ │ ├── mavlink_msg_highres_imu.hpp │ │ ├── mavlink_msg_hil_actuator_controls.h │ │ ├── mavlink_msg_hil_actuator_controls.hpp │ │ ├── mavlink_msg_hil_controls.h │ │ ├── mavlink_msg_hil_controls.hpp │ │ ├── mavlink_msg_hil_gps.h │ │ ├── mavlink_msg_hil_gps.hpp │ │ ├── mavlink_msg_hil_optical_flow.h │ │ ├── mavlink_msg_hil_optical_flow.hpp │ │ ├── mavlink_msg_hil_rc_inputs_raw.h │ │ ├── mavlink_msg_hil_rc_inputs_raw.hpp │ │ ├── mavlink_msg_hil_sensor.h │ │ ├── mavlink_msg_hil_sensor.hpp │ │ ├── mavlink_msg_hil_state.h │ │ ├── mavlink_msg_hil_state.hpp │ │ ├── mavlink_msg_hil_state_quaternion.h │ │ ├── mavlink_msg_hil_state_quaternion.hpp │ │ ├── mavlink_msg_home_position.h │ │ ├── mavlink_msg_home_position.hpp │ │ ├── mavlink_msg_hygrometer_sensor.h │ │ ├── mavlink_msg_hygrometer_sensor.hpp │ │ ├── mavlink_msg_isbd_link_status.h │ │ ├── mavlink_msg_isbd_link_status.hpp │ │ ├── mavlink_msg_landing_target.h │ │ ├── mavlink_msg_landing_target.hpp │ │ ├── mavlink_msg_local_position_ned.h │ │ ├── mavlink_msg_local_position_ned.hpp │ │ ├── mavlink_msg_local_position_ned_cov.h │ │ ├── mavlink_msg_local_position_ned_cov.hpp │ │ ├── mavlink_msg_local_position_ned_system_global_offset.h │ │ ├── mavlink_msg_local_position_ned_system_global_offset.hpp │ │ ├── mavlink_msg_log_data.h │ │ ├── mavlink_msg_log_data.hpp │ │ ├── mavlink_msg_log_entry.h │ │ ├── mavlink_msg_log_entry.hpp │ │ ├── mavlink_msg_log_erase.h │ │ ├── mavlink_msg_log_erase.hpp │ │ ├── mavlink_msg_log_request_data.h │ │ ├── mavlink_msg_log_request_data.hpp │ │ ├── mavlink_msg_log_request_end.h │ │ ├── mavlink_msg_log_request_end.hpp │ │ ├── mavlink_msg_log_request_list.h │ │ ├── mavlink_msg_log_request_list.hpp │ │ ├── mavlink_msg_logging_ack.h │ │ ├── mavlink_msg_logging_ack.hpp │ │ ├── mavlink_msg_logging_data.h │ │ ├── mavlink_msg_logging_data.hpp │ │ ├── mavlink_msg_logging_data_acked.h │ │ ├── mavlink_msg_logging_data_acked.hpp │ │ ├── mavlink_msg_mag_cal_report.h │ │ ├── mavlink_msg_mag_cal_report.hpp │ │ ├── mavlink_msg_manual_control.h │ │ ├── mavlink_msg_manual_control.hpp │ │ ├── mavlink_msg_manual_setpoint.h │ │ ├── mavlink_msg_manual_setpoint.hpp │ │ ├── mavlink_msg_memory_vect.h │ │ ├── mavlink_msg_memory_vect.hpp │ │ ├── mavlink_msg_message_interval.h │ │ ├── mavlink_msg_message_interval.hpp │ │ ├── mavlink_msg_mission_ack.h │ │ ├── mavlink_msg_mission_ack.hpp │ │ ├── mavlink_msg_mission_clear_all.h │ │ ├── mavlink_msg_mission_clear_all.hpp │ │ ├── mavlink_msg_mission_count.h │ │ ├── mavlink_msg_mission_count.hpp │ │ ├── mavlink_msg_mission_current.h │ │ ├── mavlink_msg_mission_current.hpp │ │ ├── mavlink_msg_mission_item.h │ │ ├── mavlink_msg_mission_item.hpp │ │ ├── mavlink_msg_mission_item_int.h │ │ ├── mavlink_msg_mission_item_int.hpp │ │ ├── mavlink_msg_mission_item_reached.h │ │ ├── mavlink_msg_mission_item_reached.hpp │ │ ├── mavlink_msg_mission_request.h │ │ ├── mavlink_msg_mission_request.hpp │ │ ├── mavlink_msg_mission_request_int.h │ │ ├── mavlink_msg_mission_request_int.hpp │ │ ├── mavlink_msg_mission_request_list.h │ │ ├── mavlink_msg_mission_request_list.hpp │ │ ├── mavlink_msg_mission_request_partial_list.h │ │ ├── mavlink_msg_mission_request_partial_list.hpp │ │ ├── mavlink_msg_mission_set_current.h │ │ ├── mavlink_msg_mission_set_current.hpp │ │ ├── mavlink_msg_mission_write_partial_list.h │ │ ├── mavlink_msg_mission_write_partial_list.hpp │ │ ├── mavlink_msg_mount_orientation.h │ │ ├── mavlink_msg_mount_orientation.hpp │ │ ├── mavlink_msg_named_value_float.h │ │ ├── mavlink_msg_named_value_float.hpp │ │ ├── mavlink_msg_named_value_int.h │ │ ├── mavlink_msg_named_value_int.hpp │ │ ├── mavlink_msg_nav_controller_output.h │ │ ├── mavlink_msg_nav_controller_output.hpp │ │ ├── mavlink_msg_obstacle_distance.h │ │ ├── mavlink_msg_obstacle_distance.hpp │ │ ├── mavlink_msg_odometry.h │ │ ├── mavlink_msg_odometry.hpp │ │ ├── mavlink_msg_open_drone_id_arm_status.h │ │ ├── mavlink_msg_open_drone_id_arm_status.hpp │ │ ├── mavlink_msg_open_drone_id_authentication.h │ │ ├── mavlink_msg_open_drone_id_authentication.hpp │ │ ├── mavlink_msg_open_drone_id_basic_id.h │ │ ├── mavlink_msg_open_drone_id_basic_id.hpp │ │ ├── mavlink_msg_open_drone_id_location.h │ │ ├── mavlink_msg_open_drone_id_location.hpp │ │ ├── mavlink_msg_open_drone_id_message_pack.h │ │ ├── mavlink_msg_open_drone_id_message_pack.hpp │ │ ├── mavlink_msg_open_drone_id_operator_id.h │ │ ├── mavlink_msg_open_drone_id_operator_id.hpp │ │ ├── mavlink_msg_open_drone_id_self_id.h │ │ ├── mavlink_msg_open_drone_id_self_id.hpp │ │ ├── mavlink_msg_open_drone_id_system.h │ │ ├── mavlink_msg_open_drone_id_system.hpp │ │ ├── mavlink_msg_open_drone_id_system_update.h │ │ ├── mavlink_msg_open_drone_id_system_update.hpp │ │ ├── mavlink_msg_optical_flow.h │ │ ├── mavlink_msg_optical_flow.hpp │ │ ├── mavlink_msg_optical_flow_rad.h │ │ ├── mavlink_msg_optical_flow_rad.hpp │ │ ├── mavlink_msg_param_ext_ack.h │ │ ├── mavlink_msg_param_ext_ack.hpp │ │ ├── mavlink_msg_param_ext_request_list.h │ │ ├── mavlink_msg_param_ext_request_list.hpp │ │ ├── mavlink_msg_param_ext_request_read.h │ │ ├── mavlink_msg_param_ext_request_read.hpp │ │ ├── mavlink_msg_param_ext_set.h │ │ ├── mavlink_msg_param_ext_set.hpp │ │ ├── mavlink_msg_param_ext_value.h │ │ ├── mavlink_msg_param_ext_value.hpp │ │ ├── mavlink_msg_param_map_rc.h │ │ ├── mavlink_msg_param_map_rc.hpp │ │ ├── mavlink_msg_param_request_list.h │ │ ├── mavlink_msg_param_request_list.hpp │ │ ├── mavlink_msg_param_request_read.h │ │ ├── mavlink_msg_param_request_read.hpp │ │ ├── mavlink_msg_param_set.h │ │ ├── mavlink_msg_param_set.hpp │ │ ├── mavlink_msg_param_value.h │ │ ├── mavlink_msg_param_value.hpp │ │ ├── mavlink_msg_ping.h │ │ ├── mavlink_msg_ping.hpp │ │ ├── mavlink_msg_play_tune.h │ │ ├── mavlink_msg_play_tune.hpp │ │ ├── mavlink_msg_position_target_global_int.h │ │ ├── mavlink_msg_position_target_global_int.hpp │ │ ├── mavlink_msg_position_target_local_ned.h │ │ ├── mavlink_msg_position_target_local_ned.hpp │ │ ├── mavlink_msg_power_status.h │ │ ├── mavlink_msg_power_status.hpp │ │ ├── mavlink_msg_radio_status.h │ │ ├── mavlink_msg_radio_status.hpp │ │ ├── mavlink_msg_raw_imu.h │ │ ├── mavlink_msg_raw_imu.hpp │ │ ├── mavlink_msg_raw_pressure.h │ │ ├── mavlink_msg_raw_pressure.hpp │ │ ├── mavlink_msg_raw_rpm.h │ │ ├── mavlink_msg_raw_rpm.hpp │ │ ├── mavlink_msg_rc_channels.h │ │ ├── mavlink_msg_rc_channels.hpp │ │ ├── mavlink_msg_rc_channels_override.h │ │ ├── mavlink_msg_rc_channels_override.hpp │ │ ├── mavlink_msg_rc_channels_raw.h │ │ ├── mavlink_msg_rc_channels_raw.hpp │ │ ├── mavlink_msg_rc_channels_scaled.h │ │ ├── mavlink_msg_rc_channels_scaled.hpp │ │ ├── mavlink_msg_relay_status.h │ │ ├── mavlink_msg_relay_status.hpp │ │ ├── mavlink_msg_request_data_stream.h │ │ ├── mavlink_msg_request_data_stream.hpp │ │ ├── mavlink_msg_resource_request.h │ │ ├── mavlink_msg_resource_request.hpp │ │ ├── mavlink_msg_safety_allowed_area.h │ │ ├── mavlink_msg_safety_allowed_area.hpp │ │ ├── mavlink_msg_safety_set_allowed_area.h │ │ ├── mavlink_msg_safety_set_allowed_area.hpp │ │ ├── mavlink_msg_scaled_imu.h │ │ ├── mavlink_msg_scaled_imu.hpp │ │ ├── mavlink_msg_scaled_imu2.h │ │ ├── mavlink_msg_scaled_imu2.hpp │ │ ├── mavlink_msg_scaled_imu3.h │ │ ├── mavlink_msg_scaled_imu3.hpp │ │ ├── mavlink_msg_scaled_pressure.h │ │ ├── mavlink_msg_scaled_pressure.hpp │ │ ├── mavlink_msg_scaled_pressure2.h │ │ ├── mavlink_msg_scaled_pressure2.hpp │ │ ├── mavlink_msg_scaled_pressure3.h │ │ ├── mavlink_msg_scaled_pressure3.hpp │ │ ├── mavlink_msg_serial_control.h │ │ ├── mavlink_msg_serial_control.hpp │ │ ├── mavlink_msg_servo_output_raw.h │ │ ├── mavlink_msg_servo_output_raw.hpp │ │ ├── mavlink_msg_set_actuator_control_target.h │ │ ├── mavlink_msg_set_actuator_control_target.hpp │ │ ├── mavlink_msg_set_attitude_target.h │ │ ├── mavlink_msg_set_attitude_target.hpp │ │ ├── mavlink_msg_set_gps_global_origin.h │ │ ├── mavlink_msg_set_gps_global_origin.hpp │ │ ├── mavlink_msg_set_home_position.h │ │ ├── mavlink_msg_set_home_position.hpp │ │ ├── mavlink_msg_set_mode.h │ │ ├── mavlink_msg_set_mode.hpp │ │ ├── mavlink_msg_set_position_target_global_int.h │ │ ├── mavlink_msg_set_position_target_global_int.hpp │ │ ├── mavlink_msg_set_position_target_local_ned.h │ │ ├── mavlink_msg_set_position_target_local_ned.hpp │ │ ├── mavlink_msg_setup_signing.h │ │ ├── mavlink_msg_setup_signing.hpp │ │ ├── mavlink_msg_sim_state.h │ │ ├── mavlink_msg_sim_state.hpp │ │ ├── mavlink_msg_smart_battery_info.h │ │ ├── mavlink_msg_smart_battery_info.hpp │ │ ├── mavlink_msg_statustext.h │ │ ├── mavlink_msg_statustext.hpp │ │ ├── mavlink_msg_storage_information.h │ │ ├── mavlink_msg_storage_information.hpp │ │ ├── mavlink_msg_sys_status.h │ │ ├── mavlink_msg_sys_status.hpp │ │ ├── mavlink_msg_system_time.h │ │ ├── mavlink_msg_system_time.hpp │ │ ├── mavlink_msg_terrain_check.h │ │ ├── mavlink_msg_terrain_check.hpp │ │ ├── mavlink_msg_terrain_data.h │ │ ├── mavlink_msg_terrain_data.hpp │ │ ├── mavlink_msg_terrain_report.h │ │ ├── mavlink_msg_terrain_report.hpp │ │ ├── mavlink_msg_terrain_request.h │ │ ├── mavlink_msg_terrain_request.hpp │ │ ├── mavlink_msg_timesync.h │ │ ├── mavlink_msg_timesync.hpp │ │ ├── mavlink_msg_tunnel.h │ │ ├── mavlink_msg_tunnel.hpp │ │ ├── mavlink_msg_uavcan_node_info.h │ │ ├── mavlink_msg_uavcan_node_info.hpp │ │ ├── mavlink_msg_uavcan_node_status.h │ │ ├── mavlink_msg_uavcan_node_status.hpp │ │ ├── mavlink_msg_utm_global_position.h │ │ ├── mavlink_msg_utm_global_position.hpp │ │ ├── mavlink_msg_v2_extension.h │ │ ├── mavlink_msg_v2_extension.hpp │ │ ├── mavlink_msg_vfr_hud.h │ │ ├── mavlink_msg_vfr_hud.hpp │ │ ├── mavlink_msg_vibration.h │ │ ├── mavlink_msg_vibration.hpp │ │ ├── mavlink_msg_vicon_position_estimate.h │ │ ├── mavlink_msg_vicon_position_estimate.hpp │ │ ├── mavlink_msg_video_stream_information.h │ │ ├── mavlink_msg_video_stream_information.hpp │ │ ├── mavlink_msg_video_stream_status.h │ │ ├── mavlink_msg_video_stream_status.hpp │ │ ├── mavlink_msg_vision_position_estimate.h │ │ ├── mavlink_msg_vision_position_estimate.hpp │ │ ├── mavlink_msg_vision_speed_estimate.h │ │ ├── mavlink_msg_vision_speed_estimate.hpp │ │ ├── mavlink_msg_wheel_distance.h │ │ ├── mavlink_msg_wheel_distance.hpp │ │ ├── mavlink_msg_wifi_config_ap.h │ │ ├── mavlink_msg_wifi_config_ap.hpp │ │ ├── mavlink_msg_winch_status.h │ │ ├── mavlink_msg_winch_status.hpp │ │ ├── mavlink_msg_wind_cov.h │ │ ├── mavlink_msg_wind_cov.hpp │ │ ├── testsuite.h │ │ └── version.h │ ├── csAirLink │ │ ├── csAirLink.h │ │ ├── csAirLink.hpp │ │ ├── gtestsuite.hpp │ │ ├── mavlink.h │ │ ├── mavlink_msg_airlink_auth.h │ │ ├── mavlink_msg_airlink_auth.hpp │ │ ├── mavlink_msg_airlink_auth_response.h │ │ ├── mavlink_msg_airlink_auth_response.hpp │ │ ├── testsuite.h │ │ └── version.h │ ├── cubepilot │ │ ├── cubepilot.h │ │ ├── cubepilot.hpp │ │ ├── gtestsuite.hpp │ │ ├── mavlink.h │ │ ├── mavlink_msg_cubepilot_firmware_update_resp.h │ │ ├── mavlink_msg_cubepilot_firmware_update_resp.hpp │ │ ├── mavlink_msg_cubepilot_firmware_update_start.h │ │ ├── mavlink_msg_cubepilot_firmware_update_start.hpp │ │ ├── mavlink_msg_cubepilot_raw_rc.h │ │ ├── mavlink_msg_cubepilot_raw_rc.hpp │ │ ├── mavlink_msg_herelink_telem.h │ │ ├── mavlink_msg_herelink_telem.hpp │ │ ├── mavlink_msg_herelink_video_stream_information.h │ │ ├── mavlink_msg_herelink_video_stream_information.hpp │ │ ├── testsuite.h │ │ └── version.h │ ├── icarous │ │ ├── gtestsuite.hpp │ │ ├── icarous.h │ │ ├── icarous.hpp │ │ ├── mavlink.h │ │ ├── mavlink_msg_icarous_heartbeat.h │ │ ├── mavlink_msg_icarous_heartbeat.hpp │ │ ├── mavlink_msg_icarous_kinematic_bands.h │ │ ├── mavlink_msg_icarous_kinematic_bands.hpp │ │ ├── testsuite.h │ │ └── version.h │ ├── loweheiser │ │ ├── gtestsuite.hpp │ │ ├── loweheiser.h │ │ ├── loweheiser.hpp │ │ ├── mavlink.h │ │ ├── mavlink_msg_loweheiser_gov_efi.h │ │ ├── mavlink_msg_loweheiser_gov_efi.hpp │ │ ├── testsuite.h │ │ └── version.h │ ├── mavlink_conversions.h │ ├── mavlink_get_info.h │ ├── mavlink_helpers.h │ ├── mavlink_sha256.h │ ├── mavlink_types.h │ ├── message.hpp │ ├── minimal │ │ ├── gtestsuite.hpp │ │ ├── mavlink.h │ │ ├── mavlink_msg_heartbeat.h │ │ ├── mavlink_msg_heartbeat.hpp │ │ ├── minimal.h │ │ ├── minimal.hpp │ │ ├── testsuite.h │ │ └── version.h │ ├── msgmap.hpp │ ├── protocol.h │ └── uAvionix │ │ ├── gtestsuite.hpp │ │ ├── mavlink.h │ │ ├── mavlink_msg_uavionix_adsb_get.h │ │ ├── mavlink_msg_uavionix_adsb_get.hpp │ │ ├── mavlink_msg_uavionix_adsb_out_cfg.h │ │ ├── mavlink_msg_uavionix_adsb_out_cfg.hpp │ │ ├── mavlink_msg_uavionix_adsb_out_cfg_flightid.h │ │ ├── mavlink_msg_uavionix_adsb_out_cfg_flightid.hpp │ │ ├── mavlink_msg_uavionix_adsb_out_cfg_registration.h │ │ ├── mavlink_msg_uavionix_adsb_out_cfg_registration.hpp │ │ ├── mavlink_msg_uavionix_adsb_out_control.h │ │ ├── mavlink_msg_uavionix_adsb_out_control.hpp │ │ ├── mavlink_msg_uavionix_adsb_out_dynamic.h │ │ ├── mavlink_msg_uavionix_adsb_out_dynamic.hpp │ │ ├── mavlink_msg_uavionix_adsb_out_status.h │ │ ├── mavlink_msg_uavionix_adsb_out_status.hpp │ │ ├── mavlink_msg_uavionix_adsb_transceiver_health_report.h │ │ ├── mavlink_msg_uavionix_adsb_transceiver_health_report.hpp │ │ ├── testsuite.h │ │ ├── uAvionix.h │ │ ├── uAvionix.hpp │ │ └── version.h ├── mavlink_motorcurr2.cpp └── pico_sdk_import.cmake ├── micropython ├── main.py ├── mavcrc.py ├── pymavminimal.py ├── test.py └── upload.sh └── missionplanner.png /c/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.13) 2 | 3 | # Set the below line if the Pico SDK is not in your system path 4 | #set(PICO_SDK_PATH "/home/stephen/Documents/picodev/pico/pico-sdk") 5 | include(${PICO_SDK_PATH}/external/pico_sdk_import.cmake) 6 | 7 | project(mavlink_periph C CXX ASM) 8 | set(CMAKE_C_STANDARD 11) 9 | set(CMAKE_CXX_STANDARD 17) 10 | 11 | set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -Wno-address-of-packed-member") 12 | 13 | pico_sdk_init() 14 | 15 | add_executable(mavlink_periph 16 | main.c 17 | ) 18 | 19 | # STDIO on USB or UART? 20 | pico_enable_stdio_uart(mavlink_periph 0) 21 | pico_enable_stdio_usb(mavlink_periph 1) 22 | 23 | # pull in common dependencies 24 | target_link_libraries(mavlink_periph pico_stdlib hardware_adc) 25 | 26 | # create map/bin/hex file etc. 27 | pico_add_extra_outputs(mavlink_periph) 28 | 29 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from ardupilotmega.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH 1315151737785376045 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "ardupilotmega.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_aoa_ssa.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE AOA_SSA support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief AOA_SSA message 11 | * 12 | * Angle of Attack and Side Slip Angle. 13 | */ 14 | struct AOA_SSA : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 11020; 16 | static constexpr size_t LENGTH = 16; 17 | static constexpr size_t MIN_LENGTH = 16; 18 | static constexpr uint8_t CRC_EXTRA = 205; 19 | static constexpr auto NAME = "AOA_SSA"; 20 | 21 | 22 | uint64_t time_usec; /*< [us] Timestamp (since boot or Unix epoch). */ 23 | float AOA; /*< [deg] Angle of Attack. */ 24 | float SSA; /*< [deg] Side Slip Angle. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " time_usec: " << time_usec << std::endl; 43 | ss << " AOA: " << AOA << std::endl; 44 | ss << " SSA: " << SSA << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << time_usec; // offset: 0 54 | map << AOA; // offset: 8 55 | map << SSA; // offset: 12 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> time_usec; // offset: 0 61 | map >> AOA; // offset: 8 62 | map >> SSA; // offset: 12 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_autopilot_version_request.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE AUTOPILOT_VERSION_REQUEST support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief AUTOPILOT_VERSION_REQUEST message 11 | * 12 | * Request the autopilot version from the system/component. 13 | */ 14 | struct AUTOPILOT_VERSION_REQUEST : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 183; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 85; 19 | static constexpr auto NAME = "AUTOPILOT_VERSION_REQUEST"; 20 | 21 | 22 | uint8_t target_system; /*< System ID. */ 23 | uint8_t target_component; /*< Component ID. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " target_system: " << +target_system << std::endl; 42 | ss << " target_component: " << +target_component << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << target_system; // offset: 0 52 | map << target_component; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> target_system; // offset: 0 58 | map >> target_component; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_battery2.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE BATTERY2 support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief BATTERY2 message 11 | * 12 | * 2nd Battery status 13 | */ 14 | struct BATTERY2 : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 181; 16 | static constexpr size_t LENGTH = 4; 17 | static constexpr size_t MIN_LENGTH = 4; 18 | static constexpr uint8_t CRC_EXTRA = 174; 19 | static constexpr auto NAME = "BATTERY2"; 20 | 21 | 22 | uint16_t voltage; /*< [mV] Voltage. */ 23 | int16_t current_battery; /*< [cA] Battery current, -1: autopilot does not measure the current. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " voltage: " << voltage << std::endl; 42 | ss << " current_battery: " << current_battery << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << voltage; // offset: 0 52 | map << current_battery; // offset: 2 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> voltage; // offset: 0 58 | map >> current_battery; // offset: 2 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_data16.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DATA16 support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DATA16 message 11 | * 12 | * Data packet, size 16. 13 | */ 14 | struct DATA16 : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 169; 16 | static constexpr size_t LENGTH = 18; 17 | static constexpr size_t MIN_LENGTH = 18; 18 | static constexpr uint8_t CRC_EXTRA = 234; 19 | static constexpr auto NAME = "DATA16"; 20 | 21 | 22 | uint8_t type; /*< Data type. */ 23 | uint8_t len; /*< [bytes] Data length. */ 24 | std::array data; /*< Raw data. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " type: " << +type << std::endl; 43 | ss << " len: " << +len << std::endl; 44 | ss << " data: [" << to_string(data) << "]" << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << type; // offset: 0 54 | map << len; // offset: 1 55 | map << data; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> type; // offset: 0 61 | map >> len; // offset: 1 62 | map >> data; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_data32.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DATA32 support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DATA32 message 11 | * 12 | * Data packet, size 32. 13 | */ 14 | struct DATA32 : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 170; 16 | static constexpr size_t LENGTH = 34; 17 | static constexpr size_t MIN_LENGTH = 34; 18 | static constexpr uint8_t CRC_EXTRA = 73; 19 | static constexpr auto NAME = "DATA32"; 20 | 21 | 22 | uint8_t type; /*< Data type. */ 23 | uint8_t len; /*< [bytes] Data length. */ 24 | std::array data; /*< Raw data. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " type: " << +type << std::endl; 43 | ss << " len: " << +len << std::endl; 44 | ss << " data: [" << to_string(data) << "]" << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << type; // offset: 0 54 | map << len; // offset: 1 55 | map << data; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> type; // offset: 0 61 | map >> len; // offset: 1 62 | map >> data; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_data64.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DATA64 support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DATA64 message 11 | * 12 | * Data packet, size 64. 13 | */ 14 | struct DATA64 : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 171; 16 | static constexpr size_t LENGTH = 66; 17 | static constexpr size_t MIN_LENGTH = 66; 18 | static constexpr uint8_t CRC_EXTRA = 181; 19 | static constexpr auto NAME = "DATA64"; 20 | 21 | 22 | uint8_t type; /*< Data type. */ 23 | uint8_t len; /*< [bytes] Data length. */ 24 | std::array data; /*< Raw data. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " type: " << +type << std::endl; 43 | ss << " len: " << +len << std::endl; 44 | ss << " data: [" << to_string(data) << "]" << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << type; // offset: 0 54 | map << len; // offset: 1 55 | map << data; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> type; // offset: 0 61 | map >> len; // offset: 1 62 | map >> data; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_data96.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DATA96 support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DATA96 message 11 | * 12 | * Data packet, size 96. 13 | */ 14 | struct DATA96 : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 172; 16 | static constexpr size_t LENGTH = 98; 17 | static constexpr size_t MIN_LENGTH = 98; 18 | static constexpr uint8_t CRC_EXTRA = 22; 19 | static constexpr auto NAME = "DATA96"; 20 | 21 | 22 | uint8_t type; /*< Data type. */ 23 | uint8_t len; /*< [bytes] Data length. */ 24 | std::array data; /*< Raw data. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " type: " << +type << std::endl; 43 | ss << " len: " << +len << std::endl; 44 | ss << " data: [" << to_string(data) << "]" << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << type; // offset: 0 54 | map << len; // offset: 1 55 | map << data; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> type; // offset: 0 61 | map >> len; // offset: 1 62 | map >> data; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_device_op_write_reply.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DEVICE_OP_WRITE_REPLY support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DEVICE_OP_WRITE_REPLY message 11 | * 12 | * Write registers reply. 13 | */ 14 | struct DEVICE_OP_WRITE_REPLY : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 11003; 16 | static constexpr size_t LENGTH = 5; 17 | static constexpr size_t MIN_LENGTH = 5; 18 | static constexpr uint8_t CRC_EXTRA = 64; 19 | static constexpr auto NAME = "DEVICE_OP_WRITE_REPLY"; 20 | 21 | 22 | uint32_t request_id; /*< Request ID - copied from request. */ 23 | uint8_t result; /*< 0 for success, anything else is failure code. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " request_id: " << request_id << std::endl; 42 | ss << " result: " << +result << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << request_id; // offset: 0 52 | map << result; // offset: 4 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> request_id; // offset: 0 58 | map >> result; // offset: 4 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_gopro_get_request.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE GOPRO_GET_REQUEST support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief GOPRO_GET_REQUEST message 11 | * 12 | * Request a GOPRO_COMMAND response from the GoPro. 13 | */ 14 | struct GOPRO_GET_REQUEST : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 216; 16 | static constexpr size_t LENGTH = 3; 17 | static constexpr size_t MIN_LENGTH = 3; 18 | static constexpr uint8_t CRC_EXTRA = 50; 19 | static constexpr auto NAME = "GOPRO_GET_REQUEST"; 20 | 21 | 22 | uint8_t target_system; /*< System ID. */ 23 | uint8_t target_component; /*< Component ID. */ 24 | uint8_t cmd_id; /*< Command ID. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " target_system: " << +target_system << std::endl; 43 | ss << " target_component: " << +target_component << std::endl; 44 | ss << " cmd_id: " << +cmd_id << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << target_system; // offset: 0 54 | map << target_component; // offset: 1 55 | map << cmd_id; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> target_system; // offset: 0 61 | map >> target_component; // offset: 1 62 | map >> cmd_id; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_gopro_get_response.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE GOPRO_GET_RESPONSE support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief GOPRO_GET_RESPONSE message 11 | * 12 | * Response from a GOPRO_COMMAND get request. 13 | */ 14 | struct GOPRO_GET_RESPONSE : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 217; 16 | static constexpr size_t LENGTH = 6; 17 | static constexpr size_t MIN_LENGTH = 6; 18 | static constexpr uint8_t CRC_EXTRA = 202; 19 | static constexpr auto NAME = "GOPRO_GET_RESPONSE"; 20 | 21 | 22 | uint8_t cmd_id; /*< Command ID. */ 23 | uint8_t status; /*< Status. */ 24 | std::array value; /*< Value. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " cmd_id: " << +cmd_id << std::endl; 43 | ss << " status: " << +status << std::endl; 44 | ss << " value: [" << to_string(value) << "]" << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << cmd_id; // offset: 0 54 | map << status; // offset: 1 55 | map << value; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> cmd_id; // offset: 0 61 | map >> status; // offset: 1 62 | map >> value; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_gopro_heartbeat.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE GOPRO_HEARTBEAT support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief GOPRO_HEARTBEAT message 11 | * 12 | * Heartbeat from a HeroBus attached GoPro. 13 | */ 14 | struct GOPRO_HEARTBEAT : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 215; 16 | static constexpr size_t LENGTH = 3; 17 | static constexpr size_t MIN_LENGTH = 3; 18 | static constexpr uint8_t CRC_EXTRA = 101; 19 | static constexpr auto NAME = "GOPRO_HEARTBEAT"; 20 | 21 | 22 | uint8_t status; /*< Status. */ 23 | uint8_t capture_mode; /*< Current capture mode. */ 24 | uint8_t flags; /*< Additional status bits. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " status: " << +status << std::endl; 43 | ss << " capture_mode: " << +capture_mode << std::endl; 44 | ss << " flags: " << +flags << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << status; // offset: 0 54 | map << capture_mode; // offset: 1 55 | map << flags; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> status; // offset: 0 61 | map >> capture_mode; // offset: 1 62 | map >> flags; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_gopro_set_response.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE GOPRO_SET_RESPONSE support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief GOPRO_SET_RESPONSE message 11 | * 12 | * Response from a GOPRO_COMMAND set request. 13 | */ 14 | struct GOPRO_SET_RESPONSE : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 219; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 162; 19 | static constexpr auto NAME = "GOPRO_SET_RESPONSE"; 20 | 21 | 22 | uint8_t cmd_id; /*< Command ID. */ 23 | uint8_t status; /*< Status. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " cmd_id: " << +cmd_id << std::endl; 42 | ss << " status: " << +status << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << cmd_id; // offset: 0 52 | map << status; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> cmd_id; // offset: 0 58 | map >> status; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_hwstatus.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE HWSTATUS support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief HWSTATUS message 11 | * 12 | * Status of key hardware. 13 | */ 14 | struct HWSTATUS : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 165; 16 | static constexpr size_t LENGTH = 3; 17 | static constexpr size_t MIN_LENGTH = 3; 18 | static constexpr uint8_t CRC_EXTRA = 21; 19 | static constexpr auto NAME = "HWSTATUS"; 20 | 21 | 22 | uint16_t Vcc; /*< [mV] Board voltage. */ 23 | uint8_t I2Cerr; /*< I2C error count. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " Vcc: " << Vcc << std::endl; 42 | ss << " I2Cerr: " << +I2Cerr << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << Vcc; // offset: 0 52 | map << I2Cerr; // offset: 2 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> Vcc; // offset: 0 58 | map >> I2Cerr; // offset: 2 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_meminfo.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE MEMINFO support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief MEMINFO message 11 | * 12 | * State of autopilot RAM. 13 | */ 14 | struct MEMINFO : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 152; 16 | static constexpr size_t LENGTH = 8; 17 | static constexpr size_t MIN_LENGTH = 4; 18 | static constexpr uint8_t CRC_EXTRA = 208; 19 | static constexpr auto NAME = "MEMINFO"; 20 | 21 | 22 | uint16_t brkval; /*< Heap top. */ 23 | uint16_t freemem; /*< [bytes] Free memory. */ 24 | uint32_t freemem32; /*< [bytes] Free memory (32 bit). */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " brkval: " << brkval << std::endl; 43 | ss << " freemem: " << freemem << std::endl; 44 | ss << " freemem32: " << freemem32 << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << brkval; // offset: 0 54 | map << freemem; // offset: 2 55 | map << freemem32; // offset: 4 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> brkval; // offset: 0 61 | map >> freemem; // offset: 2 62 | map >> freemem32; // offset: 4 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_osd_param_config_reply.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE OSD_PARAM_CONFIG_REPLY support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief OSD_PARAM_CONFIG_REPLY message 11 | * 12 | * Configure OSD parameter reply. 13 | */ 14 | struct OSD_PARAM_CONFIG_REPLY : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 11034; 16 | static constexpr size_t LENGTH = 5; 17 | static constexpr size_t MIN_LENGTH = 5; 18 | static constexpr uint8_t CRC_EXTRA = 79; 19 | static constexpr auto NAME = "OSD_PARAM_CONFIG_REPLY"; 20 | 21 | 22 | uint32_t request_id; /*< Request ID - copied from request. */ 23 | uint8_t result; /*< Config error type. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " request_id: " << request_id << std::endl; 42 | ss << " result: " << +result << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << request_id; // offset: 0 52 | map << result; // offset: 4 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> request_id; // offset: 0 58 | map >> result; // offset: 4 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_rangefinder.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE RANGEFINDER support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief RANGEFINDER message 11 | * 12 | * Rangefinder reporting. 13 | */ 14 | struct RANGEFINDER : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 173; 16 | static constexpr size_t LENGTH = 8; 17 | static constexpr size_t MIN_LENGTH = 8; 18 | static constexpr uint8_t CRC_EXTRA = 83; 19 | static constexpr auto NAME = "RANGEFINDER"; 20 | 21 | 22 | float distance; /*< [m] Distance. */ 23 | float voltage; /*< [V] Raw voltage if available, zero otherwise. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " distance: " << distance << std::endl; 42 | ss << " voltage: " << voltage << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << distance; // offset: 0 52 | map << voltage; // offset: 4 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> distance; // offset: 0 58 | map >> voltage; // offset: 4 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_rpm.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE RPM support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief RPM message 11 | * 12 | * RPM sensor output. 13 | */ 14 | struct RPM : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 226; 16 | static constexpr size_t LENGTH = 8; 17 | static constexpr size_t MIN_LENGTH = 8; 18 | static constexpr uint8_t CRC_EXTRA = 207; 19 | static constexpr auto NAME = "RPM"; 20 | 21 | 22 | float rpm1; /*< RPM Sensor1. */ 23 | float rpm2; /*< RPM Sensor2. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " rpm1: " << rpm1 << std::endl; 42 | ss << " rpm2: " << rpm2 << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << rpm1; // offset: 0 52 | map << rpm2; // offset: 4 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> rpm1; // offset: 0 58 | map >> rpm2; // offset: 4 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/mavlink_msg_wind.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE WIND support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief WIND message 11 | * 12 | * Wind estimation. 13 | */ 14 | struct WIND : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 168; 16 | static constexpr size_t LENGTH = 12; 17 | static constexpr size_t MIN_LENGTH = 12; 18 | static constexpr uint8_t CRC_EXTRA = 1; 19 | static constexpr auto NAME = "WIND"; 20 | 21 | 22 | float direction; /*< [deg] Wind direction (that wind is coming from). */ 23 | float speed; /*< [m/s] Wind speed in ground plane. */ 24 | float speed_z; /*< [m/s] Vertical wind speed. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " direction: " << direction << std::endl; 43 | ss << " speed: " << speed << std::endl; 44 | ss << " speed_z: " << speed_z << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << direction; // offset: 0 54 | map << speed; // offset: 4 55 | map << speed_z; // offset: 8 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> direction; // offset: 0 61 | map >> speed; // offset: 4 62 | map >> speed_z; // offset: 8 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/ardupilotmega/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from ardupilotmega.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from common.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH -1603168442863514696 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "common.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_auth_key.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE AUTH_KEY support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief AUTH_KEY message 11 | * 12 | * Emit an encrypted signature / key identifying this system. PLEASE NOTE: This protocol has been kept simple, so transmitting the key requires an encrypted channel for true safety. 13 | */ 14 | struct AUTH_KEY : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 7; 16 | static constexpr size_t LENGTH = 32; 17 | static constexpr size_t MIN_LENGTH = 32; 18 | static constexpr uint8_t CRC_EXTRA = 119; 19 | static constexpr auto NAME = "AUTH_KEY"; 20 | 21 | 22 | std::array key; /*< key */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " key: \"" << to_string(key) << "\"" << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << key; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> key; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace common 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_button_change.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE BUTTON_CHANGE support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief BUTTON_CHANGE message 11 | * 12 | * Report button state change. 13 | */ 14 | struct BUTTON_CHANGE : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 257; 16 | static constexpr size_t LENGTH = 9; 17 | static constexpr size_t MIN_LENGTH = 9; 18 | static constexpr uint8_t CRC_EXTRA = 131; 19 | static constexpr auto NAME = "BUTTON_CHANGE"; 20 | 21 | 22 | uint32_t time_boot_ms; /*< [ms] Timestamp (time since system boot). */ 23 | uint32_t last_change_ms; /*< [ms] Time of last change of button state. */ 24 | uint8_t state; /*< Bitmap for state of buttons. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " time_boot_ms: " << time_boot_ms << std::endl; 43 | ss << " last_change_ms: " << last_change_ms << std::endl; 44 | ss << " state: " << +state << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << time_boot_ms; // offset: 0 54 | map << last_change_ms; // offset: 4 55 | map << state; // offset: 8 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> time_boot_ms; // offset: 0 61 | map >> last_change_ms; // offset: 4 62 | map >> state; // offset: 8 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace common 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_camera_trigger.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE CAMERA_TRIGGER support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief CAMERA_TRIGGER message 11 | * 12 | * Camera-IMU triggering and synchronisation message. 13 | */ 14 | struct CAMERA_TRIGGER : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 112; 16 | static constexpr size_t LENGTH = 12; 17 | static constexpr size_t MIN_LENGTH = 12; 18 | static constexpr uint8_t CRC_EXTRA = 174; 19 | static constexpr auto NAME = "CAMERA_TRIGGER"; 20 | 21 | 22 | uint64_t time_usec; /*< [us] Timestamp for image frame (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number. */ 23 | uint32_t seq; /*< Image frame sequence */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " time_usec: " << time_usec << std::endl; 42 | ss << " seq: " << seq << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << time_usec; // offset: 0 52 | map << seq; // offset: 8 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> time_usec; // offset: 0 58 | map >> seq; // offset: 8 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_data_stream.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DATA_STREAM support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DATA_STREAM message 11 | * 12 | * Data stream status information. 13 | */ 14 | struct DATA_STREAM : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 67; 16 | static constexpr size_t LENGTH = 4; 17 | static constexpr size_t MIN_LENGTH = 4; 18 | static constexpr uint8_t CRC_EXTRA = 21; 19 | static constexpr auto NAME = "DATA_STREAM"; 20 | 21 | 22 | uint8_t stream_id; /*< The ID of the requested data stream */ 23 | uint16_t message_rate; /*< [Hz] The message rate */ 24 | uint8_t on_off; /*< 1 stream is enabled, 0 stream is stopped. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " stream_id: " << +stream_id << std::endl; 43 | ss << " message_rate: " << message_rate << std::endl; 44 | ss << " on_off: " << +on_off << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << message_rate; // offset: 0 54 | map << stream_id; // offset: 2 55 | map << on_off; // offset: 3 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> message_rate; // offset: 0 61 | map >> stream_id; // offset: 2 62 | map >> on_off; // offset: 3 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace common 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_debug.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DEBUG support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DEBUG message 11 | * 12 | * Send a debug value. The index is used to discriminate between values. These values show up in the plot of QGroundControl as DEBUG N. 13 | */ 14 | struct DEBUG : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 254; 16 | static constexpr size_t LENGTH = 9; 17 | static constexpr size_t MIN_LENGTH = 9; 18 | static constexpr uint8_t CRC_EXTRA = 46; 19 | static constexpr auto NAME = "DEBUG"; 20 | 21 | 22 | uint32_t time_boot_ms; /*< [ms] Timestamp (time since system boot). */ 23 | uint8_t ind; /*< index of debug variable */ 24 | float value; /*< DEBUG value */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " time_boot_ms: " << time_boot_ms << std::endl; 43 | ss << " ind: " << +ind << std::endl; 44 | ss << " value: " << value << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << time_boot_ms; // offset: 0 54 | map << value; // offset: 4 55 | map << ind; // offset: 8 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> time_boot_ms; // offset: 0 61 | map >> value; // offset: 4 62 | map >> ind; // offset: 8 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace common 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_encapsulated_data.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE ENCAPSULATED_DATA support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief ENCAPSULATED_DATA message 11 | * 12 | * Data packet for images sent using the Image Transmission Protocol: https://mavlink.io/en/services/image_transmission.html. 13 | */ 14 | struct ENCAPSULATED_DATA : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 131; 16 | static constexpr size_t LENGTH = 255; 17 | static constexpr size_t MIN_LENGTH = 255; 18 | static constexpr uint8_t CRC_EXTRA = 223; 19 | static constexpr auto NAME = "ENCAPSULATED_DATA"; 20 | 21 | 22 | uint16_t seqnr; /*< sequence number (starting with 0 on every transmission) */ 23 | std::array data; /*< image data bytes */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " seqnr: " << seqnr << std::endl; 42 | ss << " data: [" << to_string(data) << "]" << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << seqnr; // offset: 0 52 | map << data; // offset: 2 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> seqnr; // offset: 0 58 | map >> data; // offset: 2 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_extended_sys_state.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE EXTENDED_SYS_STATE support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief EXTENDED_SYS_STATE message 11 | * 12 | * Provides state for additional features 13 | */ 14 | struct EXTENDED_SYS_STATE : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 245; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 130; 19 | static constexpr auto NAME = "EXTENDED_SYS_STATE"; 20 | 21 | 22 | uint8_t vtol_state; /*< The VTOL state if applicable. Is set to MAV_VTOL_STATE_UNDEFINED if UAV is not in VTOL configuration. */ 23 | uint8_t landed_state; /*< The landed state. Is set to MAV_LANDED_STATE_UNDEFINED if landed state is unknown. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " vtol_state: " << +vtol_state << std::endl; 42 | ss << " landed_state: " << +landed_state << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << vtol_state; // offset: 0 52 | map << landed_state; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> vtol_state; // offset: 0 58 | map >> landed_state; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_hygrometer_sensor.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE HYGROMETER_SENSOR support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief HYGROMETER_SENSOR message 11 | * 12 | * Temperature and humidity from hygrometer. 13 | */ 14 | struct HYGROMETER_SENSOR : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 12920; 16 | static constexpr size_t LENGTH = 5; 17 | static constexpr size_t MIN_LENGTH = 5; 18 | static constexpr uint8_t CRC_EXTRA = 20; 19 | static constexpr auto NAME = "HYGROMETER_SENSOR"; 20 | 21 | 22 | uint8_t id; /*< Hygrometer ID */ 23 | int16_t temperature; /*< [cdegC] Temperature */ 24 | uint16_t humidity; /*< [c%] Humidity */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " id: " << +id << std::endl; 43 | ss << " temperature: " << temperature << std::endl; 44 | ss << " humidity: " << humidity << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << temperature; // offset: 0 54 | map << humidity; // offset: 2 55 | map << id; // offset: 4 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> temperature; // offset: 0 61 | map >> humidity; // offset: 2 62 | map >> id; // offset: 4 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace common 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_log_erase.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE LOG_ERASE support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief LOG_ERASE message 11 | * 12 | * Erase all logs 13 | */ 14 | struct LOG_ERASE : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 121; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 237; 19 | static constexpr auto NAME = "LOG_ERASE"; 20 | 21 | 22 | uint8_t target_system; /*< System ID */ 23 | uint8_t target_component; /*< Component ID */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " target_system: " << +target_system << std::endl; 42 | ss << " target_component: " << +target_component << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << target_system; // offset: 0 52 | map << target_component; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> target_system; // offset: 0 58 | map >> target_component; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_log_request_end.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE LOG_REQUEST_END support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief LOG_REQUEST_END message 11 | * 12 | * Stop log transfer and resume normal logging 13 | */ 14 | struct LOG_REQUEST_END : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 122; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 203; 19 | static constexpr auto NAME = "LOG_REQUEST_END"; 20 | 21 | 22 | uint8_t target_system; /*< System ID */ 23 | uint8_t target_component; /*< Component ID */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " target_system: " << +target_system << std::endl; 42 | ss << " target_component: " << +target_component << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << target_system; // offset: 0 52 | map << target_component; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> target_system; // offset: 0 58 | map >> target_component; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_mission_clear_all.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE MISSION_CLEAR_ALL support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief MISSION_CLEAR_ALL message 11 | * 12 | * Delete all mission items at once. 13 | */ 14 | struct MISSION_CLEAR_ALL : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 45; 16 | static constexpr size_t LENGTH = 3; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 232; 19 | static constexpr auto NAME = "MISSION_CLEAR_ALL"; 20 | 21 | 22 | uint8_t target_system; /*< System ID */ 23 | uint8_t target_component; /*< Component ID */ 24 | uint8_t mission_type; /*< Mission type. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " target_system: " << +target_system << std::endl; 43 | ss << " target_component: " << +target_component << std::endl; 44 | ss << " mission_type: " << +mission_type << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << target_system; // offset: 0 54 | map << target_component; // offset: 1 55 | map << mission_type; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> target_system; // offset: 0 61 | map >> target_component; // offset: 1 62 | map >> mission_type; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace common 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_mission_item_reached.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE MISSION_ITEM_REACHED support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief MISSION_ITEM_REACHED message 11 | * 12 | * A certain mission item has been reached. The system will either hold this position (or circle on the orbit) or (if the autocontinue on the WP was set) continue to the next waypoint. 13 | */ 14 | struct MISSION_ITEM_REACHED : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 46; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 11; 19 | static constexpr auto NAME = "MISSION_ITEM_REACHED"; 20 | 21 | 22 | uint16_t seq; /*< Sequence */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " seq: " << seq << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << seq; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> seq; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace common 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_open_drone_id_arm_status.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE OPEN_DRONE_ID_ARM_STATUS support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief OPEN_DRONE_ID_ARM_STATUS message 11 | * 12 | * Status from the transmitter telling the flight controller if the remote ID system is ready for arming. 13 | */ 14 | struct OPEN_DRONE_ID_ARM_STATUS : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 12918; 16 | static constexpr size_t LENGTH = 51; 17 | static constexpr size_t MIN_LENGTH = 51; 18 | static constexpr uint8_t CRC_EXTRA = 139; 19 | static constexpr auto NAME = "OPEN_DRONE_ID_ARM_STATUS"; 20 | 21 | 22 | uint8_t status; /*< Status level indicating if arming is allowed. */ 23 | std::array error; /*< Text error message, should be empty if status is good to arm. Fill with nulls in unused portion. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " status: " << +status << std::endl; 42 | ss << " error: \"" << to_string(error) << "\"" << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << status; // offset: 0 52 | map << error; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> status; // offset: 0 58 | map >> error; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_param_ext_request_list.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE PARAM_EXT_REQUEST_LIST support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief PARAM_EXT_REQUEST_LIST message 11 | * 12 | * Request all parameters of this component. All parameters should be emitted in response as PARAM_EXT_VALUE. 13 | */ 14 | struct PARAM_EXT_REQUEST_LIST : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 321; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 88; 19 | static constexpr auto NAME = "PARAM_EXT_REQUEST_LIST"; 20 | 21 | 22 | uint8_t target_system; /*< System ID */ 23 | uint8_t target_component; /*< Component ID */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " target_system: " << +target_system << std::endl; 42 | ss << " target_component: " << +target_component << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << target_system; // offset: 0 52 | map << target_component; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> target_system; // offset: 0 58 | map >> target_component; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_param_request_list.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE PARAM_REQUEST_LIST support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief PARAM_REQUEST_LIST message 11 | * 12 | * Request all parameters of this component. After this request, all parameters are emitted. The parameter microservice is documented at https://mavlink.io/en/services/parameter.html 13 | */ 14 | struct PARAM_REQUEST_LIST : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 21; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 159; 19 | static constexpr auto NAME = "PARAM_REQUEST_LIST"; 20 | 21 | 22 | uint8_t target_system; /*< System ID */ 23 | uint8_t target_component; /*< Component ID */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " target_system: " << +target_system << std::endl; 42 | ss << " target_component: " << +target_component << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << target_system; // offset: 0 52 | map << target_component; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> target_system; // offset: 0 58 | map >> target_component; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_power_status.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE POWER_STATUS support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief POWER_STATUS message 11 | * 12 | * Power supply status 13 | */ 14 | struct POWER_STATUS : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 125; 16 | static constexpr size_t LENGTH = 6; 17 | static constexpr size_t MIN_LENGTH = 6; 18 | static constexpr uint8_t CRC_EXTRA = 203; 19 | static constexpr auto NAME = "POWER_STATUS"; 20 | 21 | 22 | uint16_t Vcc; /*< [mV] 5V rail voltage. */ 23 | uint16_t Vservo; /*< [mV] Servo rail voltage. */ 24 | uint16_t flags; /*< Bitmap of power supply status flags. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " Vcc: " << Vcc << std::endl; 43 | ss << " Vservo: " << Vservo << std::endl; 44 | ss << " flags: " << flags << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << Vcc; // offset: 0 54 | map << Vservo; // offset: 2 55 | map << flags; // offset: 4 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> Vcc; // offset: 0 61 | map >> Vservo; // offset: 2 62 | map >> flags; // offset: 4 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace common 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_raw_rpm.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE RAW_RPM support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief RAW_RPM message 11 | * 12 | * RPM sensor data message. 13 | */ 14 | struct RAW_RPM : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 339; 16 | static constexpr size_t LENGTH = 5; 17 | static constexpr size_t MIN_LENGTH = 5; 18 | static constexpr uint8_t CRC_EXTRA = 199; 19 | static constexpr auto NAME = "RAW_RPM"; 20 | 21 | 22 | uint8_t index; /*< Index of this RPM sensor (0-indexed) */ 23 | float frequency; /*< [rpm] Indicated rate */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " index: " << +index << std::endl; 42 | ss << " frequency: " << frequency << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << frequency; // offset: 0 52 | map << index; // offset: 4 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> frequency; // offset: 0 58 | map >> index; // offset: 4 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_system_time.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE SYSTEM_TIME support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief SYSTEM_TIME message 11 | * 12 | * The system time is the time of the master clock, typically the computer clock of the main onboard computer. 13 | */ 14 | struct SYSTEM_TIME : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 2; 16 | static constexpr size_t LENGTH = 12; 17 | static constexpr size_t MIN_LENGTH = 12; 18 | static constexpr uint8_t CRC_EXTRA = 137; 19 | static constexpr auto NAME = "SYSTEM_TIME"; 20 | 21 | 22 | uint64_t time_unix_usec; /*< [us] Timestamp (UNIX epoch time). */ 23 | uint32_t time_boot_ms; /*< [ms] Timestamp (time since system boot). */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " time_unix_usec: " << time_unix_usec << std::endl; 42 | ss << " time_boot_ms: " << time_boot_ms << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << time_unix_usec; // offset: 0 52 | map << time_boot_ms; // offset: 8 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> time_unix_usec; // offset: 0 58 | map >> time_boot_ms; // offset: 8 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_terrain_check.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE TERRAIN_CHECK support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief TERRAIN_CHECK message 11 | * 12 | * Request that the vehicle report terrain height at the given location (expected response is a TERRAIN_REPORT). Used by GCS to check if vehicle has all terrain data needed for a mission. 13 | */ 14 | struct TERRAIN_CHECK : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 135; 16 | static constexpr size_t LENGTH = 8; 17 | static constexpr size_t MIN_LENGTH = 8; 18 | static constexpr uint8_t CRC_EXTRA = 203; 19 | static constexpr auto NAME = "TERRAIN_CHECK"; 20 | 21 | 22 | int32_t lat; /*< [degE7] Latitude */ 23 | int32_t lon; /*< [degE7] Longitude */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " lat: " << lat << std::endl; 42 | ss << " lon: " << lon << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << lat; // offset: 0 52 | map << lon; // offset: 4 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> lat; // offset: 0 58 | map >> lon; // offset: 4 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/common/mavlink_msg_timesync.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE TIMESYNC support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief TIMESYNC message 11 | * 12 | * Time synchronization message. 13 | */ 14 | struct TIMESYNC : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 111; 16 | static constexpr size_t LENGTH = 16; 17 | static constexpr size_t MIN_LENGTH = 16; 18 | static constexpr uint8_t CRC_EXTRA = 34; 19 | static constexpr auto NAME = "TIMESYNC"; 20 | 21 | 22 | int64_t tc1; /*< Time sync timestamp 1 */ 23 | int64_t ts1; /*< Time sync timestamp 2 */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " tc1: " << tc1 << std::endl; 42 | ss << " ts1: " << ts1 << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << tc1; // offset: 0 52 | map << ts1; // offset: 8 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> tc1; // offset: 0 58 | map >> ts1; // offset: 8 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/common/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from common.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c/mavlink/csAirLink/csAirLink.hpp: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol generated from csAirLink.xml 3 | * @see http://mavlink.org 4 | */ 5 | 6 | #pragma once 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | #ifndef MAVLINK_STX 13 | #define MAVLINK_STX 253 14 | #endif 15 | 16 | #include "../message.hpp" 17 | 18 | namespace mavlink { 19 | namespace csAirLink { 20 | 21 | /** 22 | * Array of msg_entry needed for @p mavlink_parse_char() (through @p mavlink_get_msg_entry()) 23 | */ 24 | constexpr std::array MESSAGE_ENTRIES {{ {52000, 13, 100, 100, 0, 0, 0}, {52001, 239, 1, 1, 0, 0, 0} }}; 25 | 26 | //! MAVLINK VERSION 27 | constexpr auto MAVLINK_VERSION = 3; 28 | 29 | 30 | // ENUM DEFINITIONS 31 | 32 | 33 | /** @brief */ 34 | enum class AIRLINK_AUTH_RESPONSE_TYPE : uint8_t 35 | { 36 | ERROR_LOGIN_OR_PASS=0, /* Login or password error | */ 37 | OK=1, /* Auth successful | */ 38 | }; 39 | 40 | //! AIRLINK_AUTH_RESPONSE_TYPE ENUM_END 41 | constexpr auto AIRLINK_AUTH_RESPONSE_TYPE_ENUM_END = 2; 42 | 43 | 44 | } // namespace csAirLink 45 | } // namespace mavlink 46 | 47 | // MESSAGE DEFINITIONS 48 | #include "./mavlink_msg_airlink_auth.hpp" 49 | #include "./mavlink_msg_airlink_auth_response.hpp" 50 | 51 | // base include 52 | 53 | -------------------------------------------------------------------------------- /c/mavlink/csAirLink/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from csAirLink.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH 5623769701116325390 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "csAirLink.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c/mavlink/csAirLink/mavlink_msg_airlink_auth.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE AIRLINK_AUTH support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace csAirLink { 7 | namespace msg { 8 | 9 | /** 10 | * @brief AIRLINK_AUTH message 11 | * 12 | * Authorization package 13 | */ 14 | struct AIRLINK_AUTH : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 52000; 16 | static constexpr size_t LENGTH = 100; 17 | static constexpr size_t MIN_LENGTH = 100; 18 | static constexpr uint8_t CRC_EXTRA = 13; 19 | static constexpr auto NAME = "AIRLINK_AUTH"; 20 | 21 | 22 | std::array login; /*< Login */ 23 | std::array password; /*< Password */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " login: \"" << to_string(login) << "\"" << std::endl; 42 | ss << " password: \"" << to_string(password) << "\"" << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << login; // offset: 0 52 | map << password; // offset: 50 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> login; // offset: 0 58 | map >> password; // offset: 50 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace csAirLink 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c/mavlink/csAirLink/mavlink_msg_airlink_auth_response.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE AIRLINK_AUTH_RESPONSE support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace csAirLink { 7 | namespace msg { 8 | 9 | /** 10 | * @brief AIRLINK_AUTH_RESPONSE message 11 | * 12 | * Response to the authorization request 13 | */ 14 | struct AIRLINK_AUTH_RESPONSE : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 52001; 16 | static constexpr size_t LENGTH = 1; 17 | static constexpr size_t MIN_LENGTH = 1; 18 | static constexpr uint8_t CRC_EXTRA = 239; 19 | static constexpr auto NAME = "AIRLINK_AUTH_RESPONSE"; 20 | 21 | 22 | uint8_t resp_type; /*< Response type */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " resp_type: " << +resp_type << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << resp_type; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> resp_type; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace csAirLink 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c/mavlink/csAirLink/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from csAirLink.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 100 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c/mavlink/cubepilot/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from cubepilot.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH -2461024731693872534 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "cubepilot.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c/mavlink/cubepilot/mavlink_msg_cubepilot_raw_rc.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE CUBEPILOT_RAW_RC support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace cubepilot { 7 | namespace msg { 8 | 9 | /** 10 | * @brief CUBEPILOT_RAW_RC message 11 | * 12 | * Raw RC Data 13 | */ 14 | struct CUBEPILOT_RAW_RC : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 50001; 16 | static constexpr size_t LENGTH = 32; 17 | static constexpr size_t MIN_LENGTH = 32; 18 | static constexpr uint8_t CRC_EXTRA = 246; 19 | static constexpr auto NAME = "CUBEPILOT_RAW_RC"; 20 | 21 | 22 | std::array rc_raw; /*< */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " rc_raw: [" << to_string(rc_raw) << "]" << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << rc_raw; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> rc_raw; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace cubepilot 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c/mavlink/cubepilot/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from cubepilot.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c/mavlink/icarous/icarous.hpp: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol generated from icarous.xml 3 | * @see http://mavlink.org 4 | */ 5 | 6 | #pragma once 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | #ifndef MAVLINK_STX 13 | #define MAVLINK_STX 253 14 | #endif 15 | 16 | #include "../message.hpp" 17 | 18 | namespace mavlink { 19 | namespace icarous { 20 | 21 | /** 22 | * Array of msg_entry needed for @p mavlink_parse_char() (through @p mavlink_get_msg_entry()) 23 | */ 24 | constexpr std::array MESSAGE_ENTRIES {{ {42000, 227, 1, 1, 0, 0, 0}, {42001, 239, 46, 46, 0, 0, 0} }}; 25 | 26 | //! MAVLINK VERSION 27 | constexpr auto MAVLINK_VERSION = 2; 28 | 29 | 30 | // ENUM DEFINITIONS 31 | 32 | 33 | /** @brief */ 34 | enum class ICAROUS_TRACK_BAND_TYPES : uint8_t 35 | { 36 | TYPE_NONE=0, /* | */ 37 | TYPE_NEAR=1, /* | */ 38 | TYPE_RECOVERY=2, /* | */ 39 | }; 40 | 41 | //! ICAROUS_TRACK_BAND_TYPES ENUM_END 42 | constexpr auto ICAROUS_TRACK_BAND_TYPES_ENUM_END = 3; 43 | 44 | /** @brief */ 45 | enum class ICAROUS_FMS_STATE : uint8_t 46 | { 47 | IDLE=0, /* | */ 48 | TAKEOFF=1, /* | */ 49 | CLIMB=2, /* | */ 50 | CRUISE=3, /* | */ 51 | APPROACH=4, /* | */ 52 | LAND=5, /* | */ 53 | }; 54 | 55 | //! ICAROUS_FMS_STATE ENUM_END 56 | constexpr auto ICAROUS_FMS_STATE_ENUM_END = 6; 57 | 58 | 59 | } // namespace icarous 60 | } // namespace mavlink 61 | 62 | // MESSAGE DEFINITIONS 63 | #include "./mavlink_msg_icarous_heartbeat.hpp" 64 | #include "./mavlink_msg_icarous_kinematic_bands.hpp" 65 | 66 | // base include 67 | 68 | -------------------------------------------------------------------------------- /c/mavlink/icarous/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from icarous.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH 8596904266211636796 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "icarous.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c/mavlink/icarous/mavlink_msg_icarous_heartbeat.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE ICAROUS_HEARTBEAT support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace icarous { 7 | namespace msg { 8 | 9 | /** 10 | * @brief ICAROUS_HEARTBEAT message 11 | * 12 | * ICAROUS heartbeat 13 | */ 14 | struct ICAROUS_HEARTBEAT : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 42000; 16 | static constexpr size_t LENGTH = 1; 17 | static constexpr size_t MIN_LENGTH = 1; 18 | static constexpr uint8_t CRC_EXTRA = 227; 19 | static constexpr auto NAME = "ICAROUS_HEARTBEAT"; 20 | 21 | 22 | uint8_t status; /*< See the FMS_STATE enum. */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " status: " << +status << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << status; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> status; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace icarous 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c/mavlink/icarous/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from icarous.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 46 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c/mavlink/loweheiser/loweheiser.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol generated from loweheiser.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_LOWEHEISER_H 7 | #define MAVLINK_LOWEHEISER_H 8 | 9 | #ifndef MAVLINK_H 10 | #error Wrong include order: MAVLINK_LOWEHEISER.H MUST NOT BE DIRECTLY USED. Include mavlink.h from the same directory instead or set ALL AND EVERY defines from MAVLINK.H manually accordingly, including the #define MAVLINK_H call. 11 | #endif 12 | 13 | #define MAVLINK_LOWEHEISER_XML_HASH -5373363319495093816 14 | 15 | #ifdef __cplusplus 16 | extern "C" { 17 | #endif 18 | 19 | // MESSAGE LENGTHS AND CRCS 20 | 21 | #ifndef MAVLINK_MESSAGE_LENGTHS 22 | #define MAVLINK_MESSAGE_LENGTHS {} 23 | #endif 24 | 25 | #ifndef MAVLINK_MESSAGE_CRCS 26 | #define MAVLINK_MESSAGE_CRCS {{0, 50, 9, 9, 0, 0, 0}, {10151, 195, 85, 85, 0, 0, 0}} 27 | #endif 28 | 29 | #include "../protocol.h" 30 | 31 | #define MAVLINK_ENABLED_LOWEHEISER 32 | 33 | // ENUM DEFINITIONS 34 | 35 | 36 | 37 | // MAVLINK VERSION 38 | 39 | #ifndef MAVLINK_VERSION 40 | #define MAVLINK_VERSION 2 41 | #endif 42 | 43 | #if (MAVLINK_VERSION == 0) 44 | #undef MAVLINK_VERSION 45 | #define MAVLINK_VERSION 2 46 | #endif 47 | 48 | // MESSAGE DEFINITIONS 49 | #include "./mavlink_msg_loweheiser_gov_efi.h" 50 | 51 | // base include 52 | #include "../minimal/minimal.h" 53 | 54 | 55 | #if MAVLINK_LOWEHEISER_XML_HASH == MAVLINK_PRIMARY_XML_HASH 56 | # define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_LOWEHEISER_GOV_EFI} 57 | # define MAVLINK_MESSAGE_NAMES {{ "HEARTBEAT", 0 }, { "LOWEHEISER_GOV_EFI", 10151 }} 58 | # if MAVLINK_COMMAND_24BIT 59 | # include "../mavlink_get_info.h" 60 | # endif 61 | #endif 62 | 63 | #ifdef __cplusplus 64 | } 65 | #endif // __cplusplus 66 | #endif // MAVLINK_LOWEHEISER_H 67 | -------------------------------------------------------------------------------- /c/mavlink/loweheiser/loweheiser.hpp: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol generated from loweheiser.xml 3 | * @see http://mavlink.org 4 | */ 5 | 6 | #pragma once 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | #ifndef MAVLINK_STX 13 | #define MAVLINK_STX 253 14 | #endif 15 | 16 | #include "../message.hpp" 17 | 18 | namespace mavlink { 19 | namespace loweheiser { 20 | 21 | /** 22 | * Array of msg_entry needed for @p mavlink_parse_char() (through @p mavlink_get_msg_entry()) 23 | */ 24 | constexpr std::array MESSAGE_ENTRIES {{ {0, 50, 9, 9, 0, 0, 0}, {10151, 195, 85, 85, 0, 0, 0} }}; 25 | 26 | //! MAVLINK VERSION 27 | constexpr auto MAVLINK_VERSION = 2; 28 | 29 | 30 | // ENUM DEFINITIONS 31 | 32 | 33 | 34 | 35 | } // namespace loweheiser 36 | } // namespace mavlink 37 | 38 | // MESSAGE DEFINITIONS 39 | #include "./mavlink_msg_loweheiser_gov_efi.hpp" 40 | 41 | // base include 42 | #include "../minimal/minimal.hpp" 43 | -------------------------------------------------------------------------------- /c/mavlink/loweheiser/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from loweheiser.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH -5373363319495093816 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "loweheiser.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c/mavlink/loweheiser/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from loweheiser.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 85 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c/mavlink/minimal/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from minimal.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH 4851357146505020037 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "minimal.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c/mavlink/minimal/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from minimal.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 9 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c/mavlink/uAvionix/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from uAvionix.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH 4554764753241251617 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "uAvionix.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c/mavlink/uAvionix/mavlink_msg_uavionix_adsb_get.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE UAVIONIX_ADSB_GET support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace uAvionix { 7 | namespace msg { 8 | 9 | /** 10 | * @brief UAVIONIX_ADSB_GET message 11 | * 12 | * Request messages. 13 | */ 14 | struct UAVIONIX_ADSB_GET : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 10006; 16 | static constexpr size_t LENGTH = 4; 17 | static constexpr size_t MIN_LENGTH = 4; 18 | static constexpr uint8_t CRC_EXTRA = 193; 19 | static constexpr auto NAME = "UAVIONIX_ADSB_GET"; 20 | 21 | 22 | uint32_t ReqMessageId; /*< Message ID to request. Supports any message in this 10000-10099 range */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " ReqMessageId: " << ReqMessageId << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << ReqMessageId; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> ReqMessageId; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace uAvionix 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c/mavlink/uAvionix/mavlink_msg_uavionix_adsb_out_cfg_flightid.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE UAVIONIX_ADSB_OUT_CFG_FLIGHTID support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace uAvionix { 7 | namespace msg { 8 | 9 | /** 10 | * @brief UAVIONIX_ADSB_OUT_CFG_FLIGHTID message 11 | * 12 | * Flight Identification for ADSB-Out vehicles. 13 | */ 14 | struct UAVIONIX_ADSB_OUT_CFG_FLIGHTID : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 10005; 16 | static constexpr size_t LENGTH = 9; 17 | static constexpr size_t MIN_LENGTH = 9; 18 | static constexpr uint8_t CRC_EXTRA = 103; 19 | static constexpr auto NAME = "UAVIONIX_ADSB_OUT_CFG_FLIGHTID"; 20 | 21 | 22 | std::array flight_id; /*< Flight Identification: 8 ASCII characters, '0' through '9', 'A' through 'Z' or space. Spaces (0x20) used as a trailing pad character, or when call sign is unavailable. Reflects Control message setting. This is null-terminated. */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " flight_id: \"" << to_string(flight_id) << "\"" << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << flight_id; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> flight_id; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace uAvionix 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c/mavlink/uAvionix/mavlink_msg_uavionix_adsb_out_cfg_registration.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE UAVIONIX_ADSB_OUT_CFG_REGISTRATION support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace uAvionix { 7 | namespace msg { 8 | 9 | /** 10 | * @brief UAVIONIX_ADSB_OUT_CFG_REGISTRATION message 11 | * 12 | * Aircraft Registration. 13 | */ 14 | struct UAVIONIX_ADSB_OUT_CFG_REGISTRATION : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 10004; 16 | static constexpr size_t LENGTH = 9; 17 | static constexpr size_t MIN_LENGTH = 9; 18 | static constexpr uint8_t CRC_EXTRA = 133; 19 | static constexpr auto NAME = "UAVIONIX_ADSB_OUT_CFG_REGISTRATION"; 20 | 21 | 22 | std::array registration; /*< Aircraft Registration (ASCII string A-Z, 0-9 only), e.g. "N8644B ". Trailing spaces (0x20) only. This is null-terminated. */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " registration: \"" << to_string(registration) << "\"" << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << registration; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> registration; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace uAvionix 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c/mavlink/uAvionix/mavlink_msg_uavionix_adsb_transceiver_health_report.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace uAvionix { 7 | namespace msg { 8 | 9 | /** 10 | * @brief UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT message 11 | * 12 | * Transceiver heartbeat with health report (updated every 10s) 13 | */ 14 | struct UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 10003; 16 | static constexpr size_t LENGTH = 1; 17 | static constexpr size_t MIN_LENGTH = 1; 18 | static constexpr uint8_t CRC_EXTRA = 4; 19 | static constexpr auto NAME = "UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT"; 20 | 21 | 22 | uint8_t rfHealth; /*< ADS-B transponder messages */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " rfHealth: " << +rfHealth << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << rfHealth; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> rfHealth; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace uAvionix 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c/mavlink/uAvionix/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from uAvionix.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c_vscode/.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | -------------------------------------------------------------------------------- /c_vscode/.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Pico", 5 | "includePath": [ 6 | "${workspaceFolder}/**", 7 | "${userHome}/.pico-sdk/sdk/2.1.1/**" 8 | ], 9 | "forcedInclude": [ 10 | "${userHome}/.pico-sdk/sdk/2.1.1/src/common/pico_base_headers/include/pico.h", 11 | "${workspaceFolder}/build/generated/pico_base/pico/config_autogen.h" 12 | ], 13 | "defines": [], 14 | "compilerPath": "${userHome}/.pico-sdk/toolchain/14_2_Rel1/bin/arm-none-eabi-gcc", 15 | "compileCommands": "${workspaceFolder}/build/compile_commands.json", 16 | "cStandard": "c17", 17 | "cppStandard": "c++14", 18 | "intelliSenseMode": "linux-gcc-arm" 19 | } 20 | ], 21 | "version": 4 22 | } 23 | -------------------------------------------------------------------------------- /c_vscode/.vscode/cmake-kits.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "Pico", 4 | "compilers": { 5 | "C": "${command:raspberry-pi-pico.getCompilerPath}", 6 | "CXX": "${command:raspberry-pi-pico.getCxxCompilerPath}" 7 | }, 8 | "environmentVariables": { 9 | "PATH": "${command:raspberry-pi-pico.getEnvPath};${env:PATH}" 10 | }, 11 | "cmakeSettings": { 12 | "Python3_EXECUTABLE": "${command:raspberry-pi-pico.getPythonPath}" 13 | } 14 | } 15 | ] -------------------------------------------------------------------------------- /c_vscode/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "marus25.cortex-debug", 4 | "ms-vscode.cpptools", 5 | "ms-vscode.cpptools-extension-pack", 6 | "ms-vscode.vscode-serial-monitor", 7 | "raspberry-pi.raspberry-pi-pico" 8 | ] 9 | } -------------------------------------------------------------------------------- /c_vscode/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Generated Cmake Pico project file 2 | 3 | cmake_minimum_required(VERSION 3.13) 4 | 5 | set(CMAKE_C_STANDARD 11) 6 | set(CMAKE_CXX_STANDARD 17) 7 | set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 8 | 9 | # Initialise pico_sdk from installed location 10 | # (note this can come from environment, CMake cache etc) 11 | 12 | # == DO NOT EDIT THE FOLLOWING LINES for the Raspberry Pi Pico VS Code Extension to work == 13 | if(WIN32) 14 | set(USERHOME $ENV{USERPROFILE}) 15 | else() 16 | set(USERHOME $ENV{HOME}) 17 | endif() 18 | set(sdkVersion 2.1.1) 19 | set(toolchainVersion 14_2_Rel1) 20 | set(picotoolVersion 2.1.1) 21 | set(picoVscode ${USERHOME}/.pico-sdk/cmake/pico-vscode.cmake) 22 | if (EXISTS ${picoVscode}) 23 | include(${picoVscode}) 24 | endif() 25 | # ==================================================================================== 26 | set(PICO_BOARD waveshare_rp2040_zero CACHE STRING "Board type") 27 | 28 | # Pull in Raspberry Pi Pico SDK (must be before project) 29 | include(pico_sdk_import.cmake) 30 | 31 | project(mavlink_motorcurr2 C CXX ASM) 32 | 33 | # Initialise the Raspberry Pi Pico SDK 34 | pico_sdk_init() 35 | 36 | # Add executable. Default name is the project name, version 0.1 37 | 38 | add_executable(mavlink_motorcurr2 mavlink_motorcurr2.cpp ) 39 | 40 | pico_set_program_name(mavlink_motorcurr2 "mavlink_motorcurr2") 41 | pico_set_program_version(mavlink_motorcurr2 "0.1") 42 | 43 | # Modify the below lines to enable/disable output over UART/USB 44 | pico_enable_stdio_uart(mavlink_motorcurr2 0) 45 | pico_enable_stdio_usb(mavlink_motorcurr2 1) 46 | 47 | # Add the standard library to the build 48 | target_link_libraries(mavlink_motorcurr2 49 | pico_stdlib) 50 | 51 | # Add the standard include files to the build 52 | target_include_directories(mavlink_motorcurr2 PRIVATE 53 | ${CMAKE_CURRENT_LIST_DIR} 54 | ) 55 | 56 | # Add any user requested libraries 57 | target_link_libraries(mavlink_motorcurr2 58 | hardware_adc 59 | ) 60 | 61 | pico_add_extra_outputs(mavlink_motorcurr2) 62 | 63 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from ardupilotmega.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH 1315151737785376045 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "ardupilotmega.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_aoa_ssa.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE AOA_SSA support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief AOA_SSA message 11 | * 12 | * Angle of Attack and Side Slip Angle. 13 | */ 14 | struct AOA_SSA : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 11020; 16 | static constexpr size_t LENGTH = 16; 17 | static constexpr size_t MIN_LENGTH = 16; 18 | static constexpr uint8_t CRC_EXTRA = 205; 19 | static constexpr auto NAME = "AOA_SSA"; 20 | 21 | 22 | uint64_t time_usec; /*< [us] Timestamp (since boot or Unix epoch). */ 23 | float AOA; /*< [deg] Angle of Attack. */ 24 | float SSA; /*< [deg] Side Slip Angle. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " time_usec: " << time_usec << std::endl; 43 | ss << " AOA: " << AOA << std::endl; 44 | ss << " SSA: " << SSA << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << time_usec; // offset: 0 54 | map << AOA; // offset: 8 55 | map << SSA; // offset: 12 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> time_usec; // offset: 0 61 | map >> AOA; // offset: 8 62 | map >> SSA; // offset: 12 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_autopilot_version_request.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE AUTOPILOT_VERSION_REQUEST support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief AUTOPILOT_VERSION_REQUEST message 11 | * 12 | * Request the autopilot version from the system/component. 13 | */ 14 | struct AUTOPILOT_VERSION_REQUEST : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 183; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 85; 19 | static constexpr auto NAME = "AUTOPILOT_VERSION_REQUEST"; 20 | 21 | 22 | uint8_t target_system; /*< System ID. */ 23 | uint8_t target_component; /*< Component ID. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " target_system: " << +target_system << std::endl; 42 | ss << " target_component: " << +target_component << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << target_system; // offset: 0 52 | map << target_component; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> target_system; // offset: 0 58 | map >> target_component; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_battery2.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE BATTERY2 support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief BATTERY2 message 11 | * 12 | * 2nd Battery status 13 | */ 14 | struct BATTERY2 : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 181; 16 | static constexpr size_t LENGTH = 4; 17 | static constexpr size_t MIN_LENGTH = 4; 18 | static constexpr uint8_t CRC_EXTRA = 174; 19 | static constexpr auto NAME = "BATTERY2"; 20 | 21 | 22 | uint16_t voltage; /*< [mV] Voltage. */ 23 | int16_t current_battery; /*< [cA] Battery current, -1: autopilot does not measure the current. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " voltage: " << voltage << std::endl; 42 | ss << " current_battery: " << current_battery << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << voltage; // offset: 0 52 | map << current_battery; // offset: 2 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> voltage; // offset: 0 58 | map >> current_battery; // offset: 2 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_data16.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DATA16 support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DATA16 message 11 | * 12 | * Data packet, size 16. 13 | */ 14 | struct DATA16 : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 169; 16 | static constexpr size_t LENGTH = 18; 17 | static constexpr size_t MIN_LENGTH = 18; 18 | static constexpr uint8_t CRC_EXTRA = 234; 19 | static constexpr auto NAME = "DATA16"; 20 | 21 | 22 | uint8_t type; /*< Data type. */ 23 | uint8_t len; /*< [bytes] Data length. */ 24 | std::array data; /*< Raw data. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " type: " << +type << std::endl; 43 | ss << " len: " << +len << std::endl; 44 | ss << " data: [" << to_string(data) << "]" << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << type; // offset: 0 54 | map << len; // offset: 1 55 | map << data; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> type; // offset: 0 61 | map >> len; // offset: 1 62 | map >> data; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_data32.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DATA32 support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DATA32 message 11 | * 12 | * Data packet, size 32. 13 | */ 14 | struct DATA32 : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 170; 16 | static constexpr size_t LENGTH = 34; 17 | static constexpr size_t MIN_LENGTH = 34; 18 | static constexpr uint8_t CRC_EXTRA = 73; 19 | static constexpr auto NAME = "DATA32"; 20 | 21 | 22 | uint8_t type; /*< Data type. */ 23 | uint8_t len; /*< [bytes] Data length. */ 24 | std::array data; /*< Raw data. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " type: " << +type << std::endl; 43 | ss << " len: " << +len << std::endl; 44 | ss << " data: [" << to_string(data) << "]" << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << type; // offset: 0 54 | map << len; // offset: 1 55 | map << data; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> type; // offset: 0 61 | map >> len; // offset: 1 62 | map >> data; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_data64.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DATA64 support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DATA64 message 11 | * 12 | * Data packet, size 64. 13 | */ 14 | struct DATA64 : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 171; 16 | static constexpr size_t LENGTH = 66; 17 | static constexpr size_t MIN_LENGTH = 66; 18 | static constexpr uint8_t CRC_EXTRA = 181; 19 | static constexpr auto NAME = "DATA64"; 20 | 21 | 22 | uint8_t type; /*< Data type. */ 23 | uint8_t len; /*< [bytes] Data length. */ 24 | std::array data; /*< Raw data. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " type: " << +type << std::endl; 43 | ss << " len: " << +len << std::endl; 44 | ss << " data: [" << to_string(data) << "]" << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << type; // offset: 0 54 | map << len; // offset: 1 55 | map << data; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> type; // offset: 0 61 | map >> len; // offset: 1 62 | map >> data; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_data96.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DATA96 support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DATA96 message 11 | * 12 | * Data packet, size 96. 13 | */ 14 | struct DATA96 : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 172; 16 | static constexpr size_t LENGTH = 98; 17 | static constexpr size_t MIN_LENGTH = 98; 18 | static constexpr uint8_t CRC_EXTRA = 22; 19 | static constexpr auto NAME = "DATA96"; 20 | 21 | 22 | uint8_t type; /*< Data type. */ 23 | uint8_t len; /*< [bytes] Data length. */ 24 | std::array data; /*< Raw data. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " type: " << +type << std::endl; 43 | ss << " len: " << +len << std::endl; 44 | ss << " data: [" << to_string(data) << "]" << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << type; // offset: 0 54 | map << len; // offset: 1 55 | map << data; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> type; // offset: 0 61 | map >> len; // offset: 1 62 | map >> data; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_device_op_write_reply.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DEVICE_OP_WRITE_REPLY support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DEVICE_OP_WRITE_REPLY message 11 | * 12 | * Write registers reply. 13 | */ 14 | struct DEVICE_OP_WRITE_REPLY : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 11003; 16 | static constexpr size_t LENGTH = 5; 17 | static constexpr size_t MIN_LENGTH = 5; 18 | static constexpr uint8_t CRC_EXTRA = 64; 19 | static constexpr auto NAME = "DEVICE_OP_WRITE_REPLY"; 20 | 21 | 22 | uint32_t request_id; /*< Request ID - copied from request. */ 23 | uint8_t result; /*< 0 for success, anything else is failure code. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " request_id: " << request_id << std::endl; 42 | ss << " result: " << +result << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << request_id; // offset: 0 52 | map << result; // offset: 4 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> request_id; // offset: 0 58 | map >> result; // offset: 4 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_gopro_get_request.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE GOPRO_GET_REQUEST support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief GOPRO_GET_REQUEST message 11 | * 12 | * Request a GOPRO_COMMAND response from the GoPro. 13 | */ 14 | struct GOPRO_GET_REQUEST : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 216; 16 | static constexpr size_t LENGTH = 3; 17 | static constexpr size_t MIN_LENGTH = 3; 18 | static constexpr uint8_t CRC_EXTRA = 50; 19 | static constexpr auto NAME = "GOPRO_GET_REQUEST"; 20 | 21 | 22 | uint8_t target_system; /*< System ID. */ 23 | uint8_t target_component; /*< Component ID. */ 24 | uint8_t cmd_id; /*< Command ID. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " target_system: " << +target_system << std::endl; 43 | ss << " target_component: " << +target_component << std::endl; 44 | ss << " cmd_id: " << +cmd_id << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << target_system; // offset: 0 54 | map << target_component; // offset: 1 55 | map << cmd_id; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> target_system; // offset: 0 61 | map >> target_component; // offset: 1 62 | map >> cmd_id; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_gopro_get_response.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE GOPRO_GET_RESPONSE support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief GOPRO_GET_RESPONSE message 11 | * 12 | * Response from a GOPRO_COMMAND get request. 13 | */ 14 | struct GOPRO_GET_RESPONSE : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 217; 16 | static constexpr size_t LENGTH = 6; 17 | static constexpr size_t MIN_LENGTH = 6; 18 | static constexpr uint8_t CRC_EXTRA = 202; 19 | static constexpr auto NAME = "GOPRO_GET_RESPONSE"; 20 | 21 | 22 | uint8_t cmd_id; /*< Command ID. */ 23 | uint8_t status; /*< Status. */ 24 | std::array value; /*< Value. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " cmd_id: " << +cmd_id << std::endl; 43 | ss << " status: " << +status << std::endl; 44 | ss << " value: [" << to_string(value) << "]" << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << cmd_id; // offset: 0 54 | map << status; // offset: 1 55 | map << value; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> cmd_id; // offset: 0 61 | map >> status; // offset: 1 62 | map >> value; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_gopro_heartbeat.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE GOPRO_HEARTBEAT support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief GOPRO_HEARTBEAT message 11 | * 12 | * Heartbeat from a HeroBus attached GoPro. 13 | */ 14 | struct GOPRO_HEARTBEAT : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 215; 16 | static constexpr size_t LENGTH = 3; 17 | static constexpr size_t MIN_LENGTH = 3; 18 | static constexpr uint8_t CRC_EXTRA = 101; 19 | static constexpr auto NAME = "GOPRO_HEARTBEAT"; 20 | 21 | 22 | uint8_t status; /*< Status. */ 23 | uint8_t capture_mode; /*< Current capture mode. */ 24 | uint8_t flags; /*< Additional status bits. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " status: " << +status << std::endl; 43 | ss << " capture_mode: " << +capture_mode << std::endl; 44 | ss << " flags: " << +flags << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << status; // offset: 0 54 | map << capture_mode; // offset: 1 55 | map << flags; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> status; // offset: 0 61 | map >> capture_mode; // offset: 1 62 | map >> flags; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_gopro_set_response.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE GOPRO_SET_RESPONSE support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief GOPRO_SET_RESPONSE message 11 | * 12 | * Response from a GOPRO_COMMAND set request. 13 | */ 14 | struct GOPRO_SET_RESPONSE : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 219; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 162; 19 | static constexpr auto NAME = "GOPRO_SET_RESPONSE"; 20 | 21 | 22 | uint8_t cmd_id; /*< Command ID. */ 23 | uint8_t status; /*< Status. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " cmd_id: " << +cmd_id << std::endl; 42 | ss << " status: " << +status << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << cmd_id; // offset: 0 52 | map << status; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> cmd_id; // offset: 0 58 | map >> status; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_hwstatus.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE HWSTATUS support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief HWSTATUS message 11 | * 12 | * Status of key hardware. 13 | */ 14 | struct HWSTATUS : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 165; 16 | static constexpr size_t LENGTH = 3; 17 | static constexpr size_t MIN_LENGTH = 3; 18 | static constexpr uint8_t CRC_EXTRA = 21; 19 | static constexpr auto NAME = "HWSTATUS"; 20 | 21 | 22 | uint16_t Vcc; /*< [mV] Board voltage. */ 23 | uint8_t I2Cerr; /*< I2C error count. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " Vcc: " << Vcc << std::endl; 42 | ss << " I2Cerr: " << +I2Cerr << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << Vcc; // offset: 0 52 | map << I2Cerr; // offset: 2 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> Vcc; // offset: 0 58 | map >> I2Cerr; // offset: 2 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_meminfo.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE MEMINFO support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief MEMINFO message 11 | * 12 | * State of autopilot RAM. 13 | */ 14 | struct MEMINFO : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 152; 16 | static constexpr size_t LENGTH = 8; 17 | static constexpr size_t MIN_LENGTH = 4; 18 | static constexpr uint8_t CRC_EXTRA = 208; 19 | static constexpr auto NAME = "MEMINFO"; 20 | 21 | 22 | uint16_t brkval; /*< Heap top. */ 23 | uint16_t freemem; /*< [bytes] Free memory. */ 24 | uint32_t freemem32; /*< [bytes] Free memory (32 bit). */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " brkval: " << brkval << std::endl; 43 | ss << " freemem: " << freemem << std::endl; 44 | ss << " freemem32: " << freemem32 << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << brkval; // offset: 0 54 | map << freemem; // offset: 2 55 | map << freemem32; // offset: 4 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> brkval; // offset: 0 61 | map >> freemem; // offset: 2 62 | map >> freemem32; // offset: 4 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_osd_param_config_reply.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE OSD_PARAM_CONFIG_REPLY support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief OSD_PARAM_CONFIG_REPLY message 11 | * 12 | * Configure OSD parameter reply. 13 | */ 14 | struct OSD_PARAM_CONFIG_REPLY : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 11034; 16 | static constexpr size_t LENGTH = 5; 17 | static constexpr size_t MIN_LENGTH = 5; 18 | static constexpr uint8_t CRC_EXTRA = 79; 19 | static constexpr auto NAME = "OSD_PARAM_CONFIG_REPLY"; 20 | 21 | 22 | uint32_t request_id; /*< Request ID - copied from request. */ 23 | uint8_t result; /*< Config error type. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " request_id: " << request_id << std::endl; 42 | ss << " result: " << +result << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << request_id; // offset: 0 52 | map << result; // offset: 4 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> request_id; // offset: 0 58 | map >> result; // offset: 4 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_rangefinder.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE RANGEFINDER support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief RANGEFINDER message 11 | * 12 | * Rangefinder reporting. 13 | */ 14 | struct RANGEFINDER : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 173; 16 | static constexpr size_t LENGTH = 8; 17 | static constexpr size_t MIN_LENGTH = 8; 18 | static constexpr uint8_t CRC_EXTRA = 83; 19 | static constexpr auto NAME = "RANGEFINDER"; 20 | 21 | 22 | float distance; /*< [m] Distance. */ 23 | float voltage; /*< [V] Raw voltage if available, zero otherwise. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " distance: " << distance << std::endl; 42 | ss << " voltage: " << voltage << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << distance; // offset: 0 52 | map << voltage; // offset: 4 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> distance; // offset: 0 58 | map >> voltage; // offset: 4 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_rpm.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE RPM support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief RPM message 11 | * 12 | * RPM sensor output. 13 | */ 14 | struct RPM : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 226; 16 | static constexpr size_t LENGTH = 8; 17 | static constexpr size_t MIN_LENGTH = 8; 18 | static constexpr uint8_t CRC_EXTRA = 207; 19 | static constexpr auto NAME = "RPM"; 20 | 21 | 22 | float rpm1; /*< RPM Sensor1. */ 23 | float rpm2; /*< RPM Sensor2. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " rpm1: " << rpm1 << std::endl; 42 | ss << " rpm2: " << rpm2 << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << rpm1; // offset: 0 52 | map << rpm2; // offset: 4 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> rpm1; // offset: 0 58 | map >> rpm2; // offset: 4 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace ardupilotmega 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/mavlink_msg_wind.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE WIND support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace ardupilotmega { 7 | namespace msg { 8 | 9 | /** 10 | * @brief WIND message 11 | * 12 | * Wind estimation. 13 | */ 14 | struct WIND : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 168; 16 | static constexpr size_t LENGTH = 12; 17 | static constexpr size_t MIN_LENGTH = 12; 18 | static constexpr uint8_t CRC_EXTRA = 1; 19 | static constexpr auto NAME = "WIND"; 20 | 21 | 22 | float direction; /*< [deg] Wind direction (that wind is coming from). */ 23 | float speed; /*< [m/s] Wind speed in ground plane. */ 24 | float speed_z; /*< [m/s] Vertical wind speed. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " direction: " << direction << std::endl; 43 | ss << " speed: " << speed << std::endl; 44 | ss << " speed_z: " << speed_z << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << direction; // offset: 0 54 | map << speed; // offset: 4 55 | map << speed_z; // offset: 8 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> direction; // offset: 0 61 | map >> speed; // offset: 4 62 | map >> speed_z; // offset: 8 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace ardupilotmega 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/ardupilotmega/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from ardupilotmega.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from common.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH -1603168442863514696 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "common.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_auth_key.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE AUTH_KEY support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief AUTH_KEY message 11 | * 12 | * Emit an encrypted signature / key identifying this system. PLEASE NOTE: This protocol has been kept simple, so transmitting the key requires an encrypted channel for true safety. 13 | */ 14 | struct AUTH_KEY : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 7; 16 | static constexpr size_t LENGTH = 32; 17 | static constexpr size_t MIN_LENGTH = 32; 18 | static constexpr uint8_t CRC_EXTRA = 119; 19 | static constexpr auto NAME = "AUTH_KEY"; 20 | 21 | 22 | std::array key; /*< key */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " key: \"" << to_string(key) << "\"" << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << key; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> key; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace common 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_button_change.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE BUTTON_CHANGE support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief BUTTON_CHANGE message 11 | * 12 | * Report button state change. 13 | */ 14 | struct BUTTON_CHANGE : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 257; 16 | static constexpr size_t LENGTH = 9; 17 | static constexpr size_t MIN_LENGTH = 9; 18 | static constexpr uint8_t CRC_EXTRA = 131; 19 | static constexpr auto NAME = "BUTTON_CHANGE"; 20 | 21 | 22 | uint32_t time_boot_ms; /*< [ms] Timestamp (time since system boot). */ 23 | uint32_t last_change_ms; /*< [ms] Time of last change of button state. */ 24 | uint8_t state; /*< Bitmap for state of buttons. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " time_boot_ms: " << time_boot_ms << std::endl; 43 | ss << " last_change_ms: " << last_change_ms << std::endl; 44 | ss << " state: " << +state << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << time_boot_ms; // offset: 0 54 | map << last_change_ms; // offset: 4 55 | map << state; // offset: 8 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> time_boot_ms; // offset: 0 61 | map >> last_change_ms; // offset: 4 62 | map >> state; // offset: 8 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace common 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_camera_trigger.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE CAMERA_TRIGGER support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief CAMERA_TRIGGER message 11 | * 12 | * Camera-IMU triggering and synchronisation message. 13 | */ 14 | struct CAMERA_TRIGGER : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 112; 16 | static constexpr size_t LENGTH = 12; 17 | static constexpr size_t MIN_LENGTH = 12; 18 | static constexpr uint8_t CRC_EXTRA = 174; 19 | static constexpr auto NAME = "CAMERA_TRIGGER"; 20 | 21 | 22 | uint64_t time_usec; /*< [us] Timestamp for image frame (UNIX Epoch time or time since system boot). The receiving end can infer timestamp format (since 1.1.1970 or since system boot) by checking for the magnitude of the number. */ 23 | uint32_t seq; /*< Image frame sequence */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " time_usec: " << time_usec << std::endl; 42 | ss << " seq: " << seq << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << time_usec; // offset: 0 52 | map << seq; // offset: 8 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> time_usec; // offset: 0 58 | map >> seq; // offset: 8 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_data_stream.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DATA_STREAM support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DATA_STREAM message 11 | * 12 | * Data stream status information. 13 | */ 14 | struct DATA_STREAM : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 67; 16 | static constexpr size_t LENGTH = 4; 17 | static constexpr size_t MIN_LENGTH = 4; 18 | static constexpr uint8_t CRC_EXTRA = 21; 19 | static constexpr auto NAME = "DATA_STREAM"; 20 | 21 | 22 | uint8_t stream_id; /*< The ID of the requested data stream */ 23 | uint16_t message_rate; /*< [Hz] The message rate */ 24 | uint8_t on_off; /*< 1 stream is enabled, 0 stream is stopped. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " stream_id: " << +stream_id << std::endl; 43 | ss << " message_rate: " << message_rate << std::endl; 44 | ss << " on_off: " << +on_off << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << message_rate; // offset: 0 54 | map << stream_id; // offset: 2 55 | map << on_off; // offset: 3 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> message_rate; // offset: 0 61 | map >> stream_id; // offset: 2 62 | map >> on_off; // offset: 3 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace common 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_debug.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE DEBUG support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief DEBUG message 11 | * 12 | * Send a debug value. The index is used to discriminate between values. These values show up in the plot of QGroundControl as DEBUG N. 13 | */ 14 | struct DEBUG : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 254; 16 | static constexpr size_t LENGTH = 9; 17 | static constexpr size_t MIN_LENGTH = 9; 18 | static constexpr uint8_t CRC_EXTRA = 46; 19 | static constexpr auto NAME = "DEBUG"; 20 | 21 | 22 | uint32_t time_boot_ms; /*< [ms] Timestamp (time since system boot). */ 23 | uint8_t ind; /*< index of debug variable */ 24 | float value; /*< DEBUG value */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " time_boot_ms: " << time_boot_ms << std::endl; 43 | ss << " ind: " << +ind << std::endl; 44 | ss << " value: " << value << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << time_boot_ms; // offset: 0 54 | map << value; // offset: 4 55 | map << ind; // offset: 8 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> time_boot_ms; // offset: 0 61 | map >> value; // offset: 4 62 | map >> ind; // offset: 8 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace common 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_encapsulated_data.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE ENCAPSULATED_DATA support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief ENCAPSULATED_DATA message 11 | * 12 | * Data packet for images sent using the Image Transmission Protocol: https://mavlink.io/en/services/image_transmission.html. 13 | */ 14 | struct ENCAPSULATED_DATA : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 131; 16 | static constexpr size_t LENGTH = 255; 17 | static constexpr size_t MIN_LENGTH = 255; 18 | static constexpr uint8_t CRC_EXTRA = 223; 19 | static constexpr auto NAME = "ENCAPSULATED_DATA"; 20 | 21 | 22 | uint16_t seqnr; /*< sequence number (starting with 0 on every transmission) */ 23 | std::array data; /*< image data bytes */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " seqnr: " << seqnr << std::endl; 42 | ss << " data: [" << to_string(data) << "]" << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << seqnr; // offset: 0 52 | map << data; // offset: 2 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> seqnr; // offset: 0 58 | map >> data; // offset: 2 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_extended_sys_state.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE EXTENDED_SYS_STATE support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief EXTENDED_SYS_STATE message 11 | * 12 | * Provides state for additional features 13 | */ 14 | struct EXTENDED_SYS_STATE : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 245; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 130; 19 | static constexpr auto NAME = "EXTENDED_SYS_STATE"; 20 | 21 | 22 | uint8_t vtol_state; /*< The VTOL state if applicable. Is set to MAV_VTOL_STATE_UNDEFINED if UAV is not in VTOL configuration. */ 23 | uint8_t landed_state; /*< The landed state. Is set to MAV_LANDED_STATE_UNDEFINED if landed state is unknown. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " vtol_state: " << +vtol_state << std::endl; 42 | ss << " landed_state: " << +landed_state << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << vtol_state; // offset: 0 52 | map << landed_state; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> vtol_state; // offset: 0 58 | map >> landed_state; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_hygrometer_sensor.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE HYGROMETER_SENSOR support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief HYGROMETER_SENSOR message 11 | * 12 | * Temperature and humidity from hygrometer. 13 | */ 14 | struct HYGROMETER_SENSOR : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 12920; 16 | static constexpr size_t LENGTH = 5; 17 | static constexpr size_t MIN_LENGTH = 5; 18 | static constexpr uint8_t CRC_EXTRA = 20; 19 | static constexpr auto NAME = "HYGROMETER_SENSOR"; 20 | 21 | 22 | uint8_t id; /*< Hygrometer ID */ 23 | int16_t temperature; /*< [cdegC] Temperature */ 24 | uint16_t humidity; /*< [c%] Humidity */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " id: " << +id << std::endl; 43 | ss << " temperature: " << temperature << std::endl; 44 | ss << " humidity: " << humidity << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << temperature; // offset: 0 54 | map << humidity; // offset: 2 55 | map << id; // offset: 4 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> temperature; // offset: 0 61 | map >> humidity; // offset: 2 62 | map >> id; // offset: 4 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace common 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_log_erase.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE LOG_ERASE support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief LOG_ERASE message 11 | * 12 | * Erase all logs 13 | */ 14 | struct LOG_ERASE : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 121; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 237; 19 | static constexpr auto NAME = "LOG_ERASE"; 20 | 21 | 22 | uint8_t target_system; /*< System ID */ 23 | uint8_t target_component; /*< Component ID */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " target_system: " << +target_system << std::endl; 42 | ss << " target_component: " << +target_component << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << target_system; // offset: 0 52 | map << target_component; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> target_system; // offset: 0 58 | map >> target_component; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_log_request_end.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE LOG_REQUEST_END support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief LOG_REQUEST_END message 11 | * 12 | * Stop log transfer and resume normal logging 13 | */ 14 | struct LOG_REQUEST_END : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 122; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 203; 19 | static constexpr auto NAME = "LOG_REQUEST_END"; 20 | 21 | 22 | uint8_t target_system; /*< System ID */ 23 | uint8_t target_component; /*< Component ID */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " target_system: " << +target_system << std::endl; 42 | ss << " target_component: " << +target_component << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << target_system; // offset: 0 52 | map << target_component; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> target_system; // offset: 0 58 | map >> target_component; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_mission_clear_all.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE MISSION_CLEAR_ALL support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief MISSION_CLEAR_ALL message 11 | * 12 | * Delete all mission items at once. 13 | */ 14 | struct MISSION_CLEAR_ALL : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 45; 16 | static constexpr size_t LENGTH = 3; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 232; 19 | static constexpr auto NAME = "MISSION_CLEAR_ALL"; 20 | 21 | 22 | uint8_t target_system; /*< System ID */ 23 | uint8_t target_component; /*< Component ID */ 24 | uint8_t mission_type; /*< Mission type. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " target_system: " << +target_system << std::endl; 43 | ss << " target_component: " << +target_component << std::endl; 44 | ss << " mission_type: " << +mission_type << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << target_system; // offset: 0 54 | map << target_component; // offset: 1 55 | map << mission_type; // offset: 2 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> target_system; // offset: 0 61 | map >> target_component; // offset: 1 62 | map >> mission_type; // offset: 2 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace common 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_mission_item_reached.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE MISSION_ITEM_REACHED support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief MISSION_ITEM_REACHED message 11 | * 12 | * A certain mission item has been reached. The system will either hold this position (or circle on the orbit) or (if the autocontinue on the WP was set) continue to the next waypoint. 13 | */ 14 | struct MISSION_ITEM_REACHED : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 46; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 11; 19 | static constexpr auto NAME = "MISSION_ITEM_REACHED"; 20 | 21 | 22 | uint16_t seq; /*< Sequence */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " seq: " << seq << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << seq; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> seq; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace common 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_open_drone_id_arm_status.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE OPEN_DRONE_ID_ARM_STATUS support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief OPEN_DRONE_ID_ARM_STATUS message 11 | * 12 | * Status from the transmitter telling the flight controller if the remote ID system is ready for arming. 13 | */ 14 | struct OPEN_DRONE_ID_ARM_STATUS : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 12918; 16 | static constexpr size_t LENGTH = 51; 17 | static constexpr size_t MIN_LENGTH = 51; 18 | static constexpr uint8_t CRC_EXTRA = 139; 19 | static constexpr auto NAME = "OPEN_DRONE_ID_ARM_STATUS"; 20 | 21 | 22 | uint8_t status; /*< Status level indicating if arming is allowed. */ 23 | std::array error; /*< Text error message, should be empty if status is good to arm. Fill with nulls in unused portion. */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " status: " << +status << std::endl; 42 | ss << " error: \"" << to_string(error) << "\"" << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << status; // offset: 0 52 | map << error; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> status; // offset: 0 58 | map >> error; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_param_ext_request_list.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE PARAM_EXT_REQUEST_LIST support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief PARAM_EXT_REQUEST_LIST message 11 | * 12 | * Request all parameters of this component. All parameters should be emitted in response as PARAM_EXT_VALUE. 13 | */ 14 | struct PARAM_EXT_REQUEST_LIST : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 321; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 88; 19 | static constexpr auto NAME = "PARAM_EXT_REQUEST_LIST"; 20 | 21 | 22 | uint8_t target_system; /*< System ID */ 23 | uint8_t target_component; /*< Component ID */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " target_system: " << +target_system << std::endl; 42 | ss << " target_component: " << +target_component << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << target_system; // offset: 0 52 | map << target_component; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> target_system; // offset: 0 58 | map >> target_component; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_param_request_list.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE PARAM_REQUEST_LIST support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief PARAM_REQUEST_LIST message 11 | * 12 | * Request all parameters of this component. After this request, all parameters are emitted. The parameter microservice is documented at https://mavlink.io/en/services/parameter.html 13 | */ 14 | struct PARAM_REQUEST_LIST : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 21; 16 | static constexpr size_t LENGTH = 2; 17 | static constexpr size_t MIN_LENGTH = 2; 18 | static constexpr uint8_t CRC_EXTRA = 159; 19 | static constexpr auto NAME = "PARAM_REQUEST_LIST"; 20 | 21 | 22 | uint8_t target_system; /*< System ID */ 23 | uint8_t target_component; /*< Component ID */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " target_system: " << +target_system << std::endl; 42 | ss << " target_component: " << +target_component << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << target_system; // offset: 0 52 | map << target_component; // offset: 1 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> target_system; // offset: 0 58 | map >> target_component; // offset: 1 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_power_status.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE POWER_STATUS support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief POWER_STATUS message 11 | * 12 | * Power supply status 13 | */ 14 | struct POWER_STATUS : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 125; 16 | static constexpr size_t LENGTH = 6; 17 | static constexpr size_t MIN_LENGTH = 6; 18 | static constexpr uint8_t CRC_EXTRA = 203; 19 | static constexpr auto NAME = "POWER_STATUS"; 20 | 21 | 22 | uint16_t Vcc; /*< [mV] 5V rail voltage. */ 23 | uint16_t Vservo; /*< [mV] Servo rail voltage. */ 24 | uint16_t flags; /*< Bitmap of power supply status flags. */ 25 | 26 | 27 | inline std::string get_name(void) const override 28 | { 29 | return NAME; 30 | } 31 | 32 | inline Info get_message_info(void) const override 33 | { 34 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 35 | } 36 | 37 | inline std::string to_yaml(void) const override 38 | { 39 | std::stringstream ss; 40 | 41 | ss << NAME << ":" << std::endl; 42 | ss << " Vcc: " << Vcc << std::endl; 43 | ss << " Vservo: " << Vservo << std::endl; 44 | ss << " flags: " << flags << std::endl; 45 | 46 | return ss.str(); 47 | } 48 | 49 | inline void serialize(mavlink::MsgMap &map) const override 50 | { 51 | map.reset(MSG_ID, LENGTH); 52 | 53 | map << Vcc; // offset: 0 54 | map << Vservo; // offset: 2 55 | map << flags; // offset: 4 56 | } 57 | 58 | inline void deserialize(mavlink::MsgMap &map) override 59 | { 60 | map >> Vcc; // offset: 0 61 | map >> Vservo; // offset: 2 62 | map >> flags; // offset: 4 63 | } 64 | }; 65 | 66 | } // namespace msg 67 | } // namespace common 68 | } // namespace mavlink 69 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_raw_rpm.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE RAW_RPM support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief RAW_RPM message 11 | * 12 | * RPM sensor data message. 13 | */ 14 | struct RAW_RPM : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 339; 16 | static constexpr size_t LENGTH = 5; 17 | static constexpr size_t MIN_LENGTH = 5; 18 | static constexpr uint8_t CRC_EXTRA = 199; 19 | static constexpr auto NAME = "RAW_RPM"; 20 | 21 | 22 | uint8_t index; /*< Index of this RPM sensor (0-indexed) */ 23 | float frequency; /*< [rpm] Indicated rate */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " index: " << +index << std::endl; 42 | ss << " frequency: " << frequency << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << frequency; // offset: 0 52 | map << index; // offset: 4 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> frequency; // offset: 0 58 | map >> index; // offset: 4 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_system_time.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE SYSTEM_TIME support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief SYSTEM_TIME message 11 | * 12 | * The system time is the time of the master clock, typically the computer clock of the main onboard computer. 13 | */ 14 | struct SYSTEM_TIME : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 2; 16 | static constexpr size_t LENGTH = 12; 17 | static constexpr size_t MIN_LENGTH = 12; 18 | static constexpr uint8_t CRC_EXTRA = 137; 19 | static constexpr auto NAME = "SYSTEM_TIME"; 20 | 21 | 22 | uint64_t time_unix_usec; /*< [us] Timestamp (UNIX epoch time). */ 23 | uint32_t time_boot_ms; /*< [ms] Timestamp (time since system boot). */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " time_unix_usec: " << time_unix_usec << std::endl; 42 | ss << " time_boot_ms: " << time_boot_ms << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << time_unix_usec; // offset: 0 52 | map << time_boot_ms; // offset: 8 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> time_unix_usec; // offset: 0 58 | map >> time_boot_ms; // offset: 8 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_terrain_check.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE TERRAIN_CHECK support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief TERRAIN_CHECK message 11 | * 12 | * Request that the vehicle report terrain height at the given location (expected response is a TERRAIN_REPORT). Used by GCS to check if vehicle has all terrain data needed for a mission. 13 | */ 14 | struct TERRAIN_CHECK : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 135; 16 | static constexpr size_t LENGTH = 8; 17 | static constexpr size_t MIN_LENGTH = 8; 18 | static constexpr uint8_t CRC_EXTRA = 203; 19 | static constexpr auto NAME = "TERRAIN_CHECK"; 20 | 21 | 22 | int32_t lat; /*< [degE7] Latitude */ 23 | int32_t lon; /*< [degE7] Longitude */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " lat: " << lat << std::endl; 42 | ss << " lon: " << lon << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << lat; // offset: 0 52 | map << lon; // offset: 4 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> lat; // offset: 0 58 | map >> lon; // offset: 4 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/mavlink_msg_timesync.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE TIMESYNC support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace common { 7 | namespace msg { 8 | 9 | /** 10 | * @brief TIMESYNC message 11 | * 12 | * Time synchronization message. 13 | */ 14 | struct TIMESYNC : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 111; 16 | static constexpr size_t LENGTH = 16; 17 | static constexpr size_t MIN_LENGTH = 16; 18 | static constexpr uint8_t CRC_EXTRA = 34; 19 | static constexpr auto NAME = "TIMESYNC"; 20 | 21 | 22 | int64_t tc1; /*< Time sync timestamp 1 */ 23 | int64_t ts1; /*< Time sync timestamp 2 */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " tc1: " << tc1 << std::endl; 42 | ss << " ts1: " << ts1 << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << tc1; // offset: 0 52 | map << ts1; // offset: 8 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> tc1; // offset: 0 58 | map >> ts1; // offset: 8 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace common 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/common/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from common.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c_vscode/mavlink/csAirLink/csAirLink.hpp: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol generated from csAirLink.xml 3 | * @see http://mavlink.org 4 | */ 5 | 6 | #pragma once 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | #ifndef MAVLINK_STX 13 | #define MAVLINK_STX 253 14 | #endif 15 | 16 | #include "../message.hpp" 17 | 18 | namespace mavlink { 19 | namespace csAirLink { 20 | 21 | /** 22 | * Array of msg_entry needed for @p mavlink_parse_char() (through @p mavlink_get_msg_entry()) 23 | */ 24 | constexpr std::array MESSAGE_ENTRIES {{ {52000, 13, 100, 100, 0, 0, 0}, {52001, 239, 1, 1, 0, 0, 0} }}; 25 | 26 | //! MAVLINK VERSION 27 | constexpr auto MAVLINK_VERSION = 3; 28 | 29 | 30 | // ENUM DEFINITIONS 31 | 32 | 33 | /** @brief */ 34 | enum class AIRLINK_AUTH_RESPONSE_TYPE : uint8_t 35 | { 36 | ERROR_LOGIN_OR_PASS=0, /* Login or password error | */ 37 | OK=1, /* Auth successful | */ 38 | }; 39 | 40 | //! AIRLINK_AUTH_RESPONSE_TYPE ENUM_END 41 | constexpr auto AIRLINK_AUTH_RESPONSE_TYPE_ENUM_END = 2; 42 | 43 | 44 | } // namespace csAirLink 45 | } // namespace mavlink 46 | 47 | // MESSAGE DEFINITIONS 48 | #include "./mavlink_msg_airlink_auth.hpp" 49 | #include "./mavlink_msg_airlink_auth_response.hpp" 50 | 51 | // base include 52 | 53 | -------------------------------------------------------------------------------- /c_vscode/mavlink/csAirLink/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from csAirLink.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH 5623769701116325390 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "csAirLink.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c_vscode/mavlink/csAirLink/mavlink_msg_airlink_auth.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE AIRLINK_AUTH support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace csAirLink { 7 | namespace msg { 8 | 9 | /** 10 | * @brief AIRLINK_AUTH message 11 | * 12 | * Authorization package 13 | */ 14 | struct AIRLINK_AUTH : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 52000; 16 | static constexpr size_t LENGTH = 100; 17 | static constexpr size_t MIN_LENGTH = 100; 18 | static constexpr uint8_t CRC_EXTRA = 13; 19 | static constexpr auto NAME = "AIRLINK_AUTH"; 20 | 21 | 22 | std::array login; /*< Login */ 23 | std::array password; /*< Password */ 24 | 25 | 26 | inline std::string get_name(void) const override 27 | { 28 | return NAME; 29 | } 30 | 31 | inline Info get_message_info(void) const override 32 | { 33 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 34 | } 35 | 36 | inline std::string to_yaml(void) const override 37 | { 38 | std::stringstream ss; 39 | 40 | ss << NAME << ":" << std::endl; 41 | ss << " login: \"" << to_string(login) << "\"" << std::endl; 42 | ss << " password: \"" << to_string(password) << "\"" << std::endl; 43 | 44 | return ss.str(); 45 | } 46 | 47 | inline void serialize(mavlink::MsgMap &map) const override 48 | { 49 | map.reset(MSG_ID, LENGTH); 50 | 51 | map << login; // offset: 0 52 | map << password; // offset: 50 53 | } 54 | 55 | inline void deserialize(mavlink::MsgMap &map) override 56 | { 57 | map >> login; // offset: 0 58 | map >> password; // offset: 50 59 | } 60 | }; 61 | 62 | } // namespace msg 63 | } // namespace csAirLink 64 | } // namespace mavlink 65 | -------------------------------------------------------------------------------- /c_vscode/mavlink/csAirLink/mavlink_msg_airlink_auth_response.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE AIRLINK_AUTH_RESPONSE support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace csAirLink { 7 | namespace msg { 8 | 9 | /** 10 | * @brief AIRLINK_AUTH_RESPONSE message 11 | * 12 | * Response to the authorization request 13 | */ 14 | struct AIRLINK_AUTH_RESPONSE : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 52001; 16 | static constexpr size_t LENGTH = 1; 17 | static constexpr size_t MIN_LENGTH = 1; 18 | static constexpr uint8_t CRC_EXTRA = 239; 19 | static constexpr auto NAME = "AIRLINK_AUTH_RESPONSE"; 20 | 21 | 22 | uint8_t resp_type; /*< Response type */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " resp_type: " << +resp_type << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << resp_type; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> resp_type; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace csAirLink 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c_vscode/mavlink/csAirLink/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from csAirLink.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 100 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c_vscode/mavlink/cubepilot/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from cubepilot.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH -2461024731693872534 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "cubepilot.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c_vscode/mavlink/cubepilot/mavlink_msg_cubepilot_raw_rc.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE CUBEPILOT_RAW_RC support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace cubepilot { 7 | namespace msg { 8 | 9 | /** 10 | * @brief CUBEPILOT_RAW_RC message 11 | * 12 | * Raw RC Data 13 | */ 14 | struct CUBEPILOT_RAW_RC : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 50001; 16 | static constexpr size_t LENGTH = 32; 17 | static constexpr size_t MIN_LENGTH = 32; 18 | static constexpr uint8_t CRC_EXTRA = 246; 19 | static constexpr auto NAME = "CUBEPILOT_RAW_RC"; 20 | 21 | 22 | std::array rc_raw; /*< */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " rc_raw: [" << to_string(rc_raw) << "]" << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << rc_raw; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> rc_raw; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace cubepilot 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c_vscode/mavlink/cubepilot/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from cubepilot.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c_vscode/mavlink/icarous/icarous.hpp: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol generated from icarous.xml 3 | * @see http://mavlink.org 4 | */ 5 | 6 | #pragma once 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | #ifndef MAVLINK_STX 13 | #define MAVLINK_STX 253 14 | #endif 15 | 16 | #include "../message.hpp" 17 | 18 | namespace mavlink { 19 | namespace icarous { 20 | 21 | /** 22 | * Array of msg_entry needed for @p mavlink_parse_char() (through @p mavlink_get_msg_entry()) 23 | */ 24 | constexpr std::array MESSAGE_ENTRIES {{ {42000, 227, 1, 1, 0, 0, 0}, {42001, 239, 46, 46, 0, 0, 0} }}; 25 | 26 | //! MAVLINK VERSION 27 | constexpr auto MAVLINK_VERSION = 2; 28 | 29 | 30 | // ENUM DEFINITIONS 31 | 32 | 33 | /** @brief */ 34 | enum class ICAROUS_TRACK_BAND_TYPES : uint8_t 35 | { 36 | TYPE_NONE=0, /* | */ 37 | TYPE_NEAR=1, /* | */ 38 | TYPE_RECOVERY=2, /* | */ 39 | }; 40 | 41 | //! ICAROUS_TRACK_BAND_TYPES ENUM_END 42 | constexpr auto ICAROUS_TRACK_BAND_TYPES_ENUM_END = 3; 43 | 44 | /** @brief */ 45 | enum class ICAROUS_FMS_STATE : uint8_t 46 | { 47 | IDLE=0, /* | */ 48 | TAKEOFF=1, /* | */ 49 | CLIMB=2, /* | */ 50 | CRUISE=3, /* | */ 51 | APPROACH=4, /* | */ 52 | LAND=5, /* | */ 53 | }; 54 | 55 | //! ICAROUS_FMS_STATE ENUM_END 56 | constexpr auto ICAROUS_FMS_STATE_ENUM_END = 6; 57 | 58 | 59 | } // namespace icarous 60 | } // namespace mavlink 61 | 62 | // MESSAGE DEFINITIONS 63 | #include "./mavlink_msg_icarous_heartbeat.hpp" 64 | #include "./mavlink_msg_icarous_kinematic_bands.hpp" 65 | 66 | // base include 67 | 68 | -------------------------------------------------------------------------------- /c_vscode/mavlink/icarous/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from icarous.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH 8596904266211636796 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "icarous.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c_vscode/mavlink/icarous/mavlink_msg_icarous_heartbeat.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE ICAROUS_HEARTBEAT support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace icarous { 7 | namespace msg { 8 | 9 | /** 10 | * @brief ICAROUS_HEARTBEAT message 11 | * 12 | * ICAROUS heartbeat 13 | */ 14 | struct ICAROUS_HEARTBEAT : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 42000; 16 | static constexpr size_t LENGTH = 1; 17 | static constexpr size_t MIN_LENGTH = 1; 18 | static constexpr uint8_t CRC_EXTRA = 227; 19 | static constexpr auto NAME = "ICAROUS_HEARTBEAT"; 20 | 21 | 22 | uint8_t status; /*< See the FMS_STATE enum. */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " status: " << +status << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << status; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> status; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace icarous 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c_vscode/mavlink/icarous/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from icarous.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 46 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c_vscode/mavlink/loweheiser/loweheiser.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol generated from loweheiser.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_LOWEHEISER_H 7 | #define MAVLINK_LOWEHEISER_H 8 | 9 | #ifndef MAVLINK_H 10 | #error Wrong include order: MAVLINK_LOWEHEISER.H MUST NOT BE DIRECTLY USED. Include mavlink.h from the same directory instead or set ALL AND EVERY defines from MAVLINK.H manually accordingly, including the #define MAVLINK_H call. 11 | #endif 12 | 13 | #define MAVLINK_LOWEHEISER_XML_HASH -5373363319495093816 14 | 15 | #ifdef __cplusplus 16 | extern "C" { 17 | #endif 18 | 19 | // MESSAGE LENGTHS AND CRCS 20 | 21 | #ifndef MAVLINK_MESSAGE_LENGTHS 22 | #define MAVLINK_MESSAGE_LENGTHS {} 23 | #endif 24 | 25 | #ifndef MAVLINK_MESSAGE_CRCS 26 | #define MAVLINK_MESSAGE_CRCS {{0, 50, 9, 9, 0, 0, 0}, {10151, 195, 85, 85, 0, 0, 0}} 27 | #endif 28 | 29 | #include "../protocol.h" 30 | 31 | #define MAVLINK_ENABLED_LOWEHEISER 32 | 33 | // ENUM DEFINITIONS 34 | 35 | 36 | 37 | // MAVLINK VERSION 38 | 39 | #ifndef MAVLINK_VERSION 40 | #define MAVLINK_VERSION 2 41 | #endif 42 | 43 | #if (MAVLINK_VERSION == 0) 44 | #undef MAVLINK_VERSION 45 | #define MAVLINK_VERSION 2 46 | #endif 47 | 48 | // MESSAGE DEFINITIONS 49 | #include "./mavlink_msg_loweheiser_gov_efi.h" 50 | 51 | // base include 52 | #include "../minimal/minimal.h" 53 | 54 | 55 | #if MAVLINK_LOWEHEISER_XML_HASH == MAVLINK_PRIMARY_XML_HASH 56 | # define MAVLINK_MESSAGE_INFO {MAVLINK_MESSAGE_INFO_HEARTBEAT, MAVLINK_MESSAGE_INFO_LOWEHEISER_GOV_EFI} 57 | # define MAVLINK_MESSAGE_NAMES {{ "HEARTBEAT", 0 }, { "LOWEHEISER_GOV_EFI", 10151 }} 58 | # if MAVLINK_COMMAND_24BIT 59 | # include "../mavlink_get_info.h" 60 | # endif 61 | #endif 62 | 63 | #ifdef __cplusplus 64 | } 65 | #endif // __cplusplus 66 | #endif // MAVLINK_LOWEHEISER_H 67 | -------------------------------------------------------------------------------- /c_vscode/mavlink/loweheiser/loweheiser.hpp: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol generated from loweheiser.xml 3 | * @see http://mavlink.org 4 | */ 5 | 6 | #pragma once 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | #ifndef MAVLINK_STX 13 | #define MAVLINK_STX 253 14 | #endif 15 | 16 | #include "../message.hpp" 17 | 18 | namespace mavlink { 19 | namespace loweheiser { 20 | 21 | /** 22 | * Array of msg_entry needed for @p mavlink_parse_char() (through @p mavlink_get_msg_entry()) 23 | */ 24 | constexpr std::array MESSAGE_ENTRIES {{ {0, 50, 9, 9, 0, 0, 0}, {10151, 195, 85, 85, 0, 0, 0} }}; 25 | 26 | //! MAVLINK VERSION 27 | constexpr auto MAVLINK_VERSION = 2; 28 | 29 | 30 | // ENUM DEFINITIONS 31 | 32 | 33 | 34 | 35 | } // namespace loweheiser 36 | } // namespace mavlink 37 | 38 | // MESSAGE DEFINITIONS 39 | #include "./mavlink_msg_loweheiser_gov_efi.hpp" 40 | 41 | // base include 42 | #include "../minimal/minimal.hpp" 43 | -------------------------------------------------------------------------------- /c_vscode/mavlink/loweheiser/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from loweheiser.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH -5373363319495093816 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "loweheiser.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c_vscode/mavlink/loweheiser/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from loweheiser.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 85 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c_vscode/mavlink/minimal/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from minimal.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH 4851357146505020037 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "minimal.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c_vscode/mavlink/minimal/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from minimal.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 9 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /c_vscode/mavlink/uAvionix/mavlink.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from uAvionix.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | #ifndef MAVLINK_H 7 | #define MAVLINK_H 8 | 9 | #define MAVLINK_PRIMARY_XML_HASH 4554764753241251617 10 | 11 | #ifndef MAVLINK_STX 12 | #define MAVLINK_STX 253 13 | #endif 14 | 15 | #ifndef MAVLINK_ENDIAN 16 | #define MAVLINK_ENDIAN MAVLINK_LITTLE_ENDIAN 17 | #endif 18 | 19 | #ifndef MAVLINK_ALIGNED_FIELDS 20 | #define MAVLINK_ALIGNED_FIELDS 1 21 | #endif 22 | 23 | #ifndef MAVLINK_CRC_EXTRA 24 | #define MAVLINK_CRC_EXTRA 1 25 | #endif 26 | 27 | #ifndef MAVLINK_COMMAND_24BIT 28 | #define MAVLINK_COMMAND_24BIT 1 29 | #endif 30 | 31 | #include "version.h" 32 | #include "uAvionix.h" 33 | 34 | #endif // MAVLINK_H 35 | -------------------------------------------------------------------------------- /c_vscode/mavlink/uAvionix/mavlink_msg_uavionix_adsb_get.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE UAVIONIX_ADSB_GET support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace uAvionix { 7 | namespace msg { 8 | 9 | /** 10 | * @brief UAVIONIX_ADSB_GET message 11 | * 12 | * Request messages. 13 | */ 14 | struct UAVIONIX_ADSB_GET : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 10006; 16 | static constexpr size_t LENGTH = 4; 17 | static constexpr size_t MIN_LENGTH = 4; 18 | static constexpr uint8_t CRC_EXTRA = 193; 19 | static constexpr auto NAME = "UAVIONIX_ADSB_GET"; 20 | 21 | 22 | uint32_t ReqMessageId; /*< Message ID to request. Supports any message in this 10000-10099 range */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " ReqMessageId: " << ReqMessageId << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << ReqMessageId; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> ReqMessageId; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace uAvionix 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c_vscode/mavlink/uAvionix/mavlink_msg_uavionix_adsb_out_cfg_flightid.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE UAVIONIX_ADSB_OUT_CFG_FLIGHTID support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace uAvionix { 7 | namespace msg { 8 | 9 | /** 10 | * @brief UAVIONIX_ADSB_OUT_CFG_FLIGHTID message 11 | * 12 | * Flight Identification for ADSB-Out vehicles. 13 | */ 14 | struct UAVIONIX_ADSB_OUT_CFG_FLIGHTID : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 10005; 16 | static constexpr size_t LENGTH = 9; 17 | static constexpr size_t MIN_LENGTH = 9; 18 | static constexpr uint8_t CRC_EXTRA = 103; 19 | static constexpr auto NAME = "UAVIONIX_ADSB_OUT_CFG_FLIGHTID"; 20 | 21 | 22 | std::array flight_id; /*< Flight Identification: 8 ASCII characters, '0' through '9', 'A' through 'Z' or space. Spaces (0x20) used as a trailing pad character, or when call sign is unavailable. Reflects Control message setting. This is null-terminated. */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " flight_id: \"" << to_string(flight_id) << "\"" << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << flight_id; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> flight_id; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace uAvionix 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c_vscode/mavlink/uAvionix/mavlink_msg_uavionix_adsb_out_cfg_registration.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE UAVIONIX_ADSB_OUT_CFG_REGISTRATION support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace uAvionix { 7 | namespace msg { 8 | 9 | /** 10 | * @brief UAVIONIX_ADSB_OUT_CFG_REGISTRATION message 11 | * 12 | * Aircraft Registration. 13 | */ 14 | struct UAVIONIX_ADSB_OUT_CFG_REGISTRATION : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 10004; 16 | static constexpr size_t LENGTH = 9; 17 | static constexpr size_t MIN_LENGTH = 9; 18 | static constexpr uint8_t CRC_EXTRA = 133; 19 | static constexpr auto NAME = "UAVIONIX_ADSB_OUT_CFG_REGISTRATION"; 20 | 21 | 22 | std::array registration; /*< Aircraft Registration (ASCII string A-Z, 0-9 only), e.g. "N8644B ". Trailing spaces (0x20) only. This is null-terminated. */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " registration: \"" << to_string(registration) << "\"" << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << registration; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> registration; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace uAvionix 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c_vscode/mavlink/uAvionix/mavlink_msg_uavionix_adsb_transceiver_health_report.hpp: -------------------------------------------------------------------------------- 1 | // MESSAGE UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT support class 2 | 3 | #pragma once 4 | 5 | namespace mavlink { 6 | namespace uAvionix { 7 | namespace msg { 8 | 9 | /** 10 | * @brief UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT message 11 | * 12 | * Transceiver heartbeat with health report (updated every 10s) 13 | */ 14 | struct UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT : mavlink::Message { 15 | static constexpr msgid_t MSG_ID = 10003; 16 | static constexpr size_t LENGTH = 1; 17 | static constexpr size_t MIN_LENGTH = 1; 18 | static constexpr uint8_t CRC_EXTRA = 4; 19 | static constexpr auto NAME = "UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT"; 20 | 21 | 22 | uint8_t rfHealth; /*< ADS-B transponder messages */ 23 | 24 | 25 | inline std::string get_name(void) const override 26 | { 27 | return NAME; 28 | } 29 | 30 | inline Info get_message_info(void) const override 31 | { 32 | return { MSG_ID, LENGTH, MIN_LENGTH, CRC_EXTRA }; 33 | } 34 | 35 | inline std::string to_yaml(void) const override 36 | { 37 | std::stringstream ss; 38 | 39 | ss << NAME << ":" << std::endl; 40 | ss << " rfHealth: " << +rfHealth << std::endl; 41 | 42 | return ss.str(); 43 | } 44 | 45 | inline void serialize(mavlink::MsgMap &map) const override 46 | { 47 | map.reset(MSG_ID, LENGTH); 48 | 49 | map << rfHealth; // offset: 0 50 | } 51 | 52 | inline void deserialize(mavlink::MsgMap &map) override 53 | { 54 | map >> rfHealth; // offset: 0 55 | } 56 | }; 57 | 58 | } // namespace msg 59 | } // namespace uAvionix 60 | } // namespace mavlink 61 | -------------------------------------------------------------------------------- /c_vscode/mavlink/uAvionix/version.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief MAVLink comm protocol built from uAvionix.xml 3 | * @see http://mavlink.org 4 | */ 5 | #pragma once 6 | 7 | #ifndef MAVLINK_VERSION_H 8 | #define MAVLINK_VERSION_H 9 | 10 | #define MAVLINK_BUILD_DATE "Thu Apr 18 2024" 11 | #define MAVLINK_WIRE_PROTOCOL_VERSION "2.0" 12 | #define MAVLINK_MAX_DIALECT_PAYLOAD_SIZE 255 13 | 14 | #endif // MAVLINK_VERSION_H 15 | -------------------------------------------------------------------------------- /micropython/mavcrc.py: -------------------------------------------------------------------------------- 1 | ''' 2 | MAVLink CRC-16/MCRF4XX code 3 | 4 | Copyright Andrew Tridgell 5 | Released under GNU LGPL version 3 or later 6 | ''' 7 | from builtins import object 8 | 9 | 10 | class x25crc(object): 11 | '''CRC-16/MCRF4XX - based on checksum.h from mavlink library''' 12 | def __init__(self, buf=None): 13 | self.crc = 0xffff 14 | if buf is not None: 15 | if isinstance(buf, str): 16 | self.accumulate_str(buf) 17 | else: 18 | self.accumulate(buf) 19 | 20 | def accumulate(self, buf): 21 | '''add in some more bytes''' 22 | accum = self.crc 23 | for b in buf: 24 | tmp = b ^ (accum & 0xff) 25 | tmp = (tmp ^ (tmp<<4)) & 0xFF 26 | accum = (accum>>8) ^ (tmp<<8) ^ (tmp<<3) ^ (tmp>>4) 27 | self.crc = accum 28 | 29 | def accumulate_str(self, buf): 30 | '''add in some more bytes''' 31 | accum = self.crc 32 | import array 33 | bytes_array = array.array('B', buf) 34 | #try: # if buf is bytes 35 | #bytes_array.frombytes(buf) 36 | #except TypeError: # if buf is str 37 | # bytes_array.frombytes(buf.encode()) 38 | #except AttributeError: # Python < 3.2 39 | # bytes_array.fromstring(buf) 40 | self.accumulate(bytes_array) 41 | -------------------------------------------------------------------------------- /micropython/test.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | # The TELEM port should be set to MAVLink2, 57600 baud 4 | 5 | from machine import Pin, UART 6 | import time 7 | import pymavminimal as pymav 8 | 9 | led = Pin(25, Pin.OUT) 10 | 11 | uart0 = UART(0, baudrate=57600, tx=Pin(0), rx=Pin(1)) 12 | 13 | seen_heartbeat = False 14 | 15 | # MAVLink 16 | mavobj = pymav.MAVLink() 17 | mavobj.robust_parsing = True 18 | 19 | # Keep looping to receive data 20 | while True: 21 | num = uart0.any() 22 | # Receive data and process into MAVLink packets 23 | if num > 0: 24 | rxData = uart0.read(num) 25 | pkts = mavobj.parse_buffer(bytearray(rxData)) 26 | if pkts is not None: 27 | for pkt in pkts: 28 | if pkt.get_type() == 'HEARTBEAT' and pkt.type not in [pymav.MAV_TYPE_GCS, pymav.MAV_TYPE_ADSB, pymav.MAV_TYPE_GIMBAL, pymav.MAV_TYPE_ONBOARD_CONTROLLER]: 29 | led.toggle() 30 | if not seen_heartbeat: 31 | print("Got heartbeat from {0}:{1}".format(pkt.get_srcSystem(), pkt.get_srcComponent())) 32 | mavobj.srcSystem = pkt.get_srcSystem() 33 | mavobj.srcComponent = 158 #MAV_COMP_ID_PERIPHERAL 34 | seen_heartbeat = True 35 | # Send the set message interval request for VFR_HUD (74), once we have heard the first heartbeat 36 | command = 511 #MAV_CMD_SET_MESSAGE_INTERVAL 37 | param1 = 74 # Message ID MAVLINK_MSG_ID_VFR_HUD 38 | param2 = 1 # Message interval 39 | cmd = mavobj.command_long_encode(1, 1, command, 1, param1, param2, 0, 0, 0, 0, 0) 40 | uart0.write(cmd.pack(mavobj)) 41 | if pkt.get_type() == 'VFR_HUD': 42 | print(pkt) 43 | time.sleep(0.01) 44 | -------------------------------------------------------------------------------- /micropython/upload.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ampy --port /dev/ttyACM0 put mavcrc.py /mavcrc.py 4 | ampy --port /dev/ttyACM0 put pymavminimal.py /pymavminimal.py 5 | ampy --port /dev/ttyACM0 put main.py /main.py 6 | -------------------------------------------------------------------------------- /missionplanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stephendade/mav_rp2040/bb8f047244643efaa9a82e23056402218c467577/missionplanner.png --------------------------------------------------------------------------------